Java 语法特性历史演化全览概述(JDK 1.0 — JDK 7)
Java 语法特性历史演化全览概述(JDK 1.0 — JDK 7)本文按 JDK 版本时间线,完整列举每个版本引入的语言语法特性与平台能力,并说明其发展背景、动机与解决的问题,让各位读者明确Java作为一门语言,其之前历史版本的每次迭代内容和原因。一、JDK 1.0(1996年1月)1.1 版本背景发布时间:1996年1月23日代号:Oak(橡树,后因商标问题改名 Java)历史背景:Sun Microsystems 最初为嵌入式设备(机顶盒)开发 Oak 语言,后转向互联网应用。JDK 1.0 是 Java 语言的正式诞生版本,奠定了整个 Java 生态的基础架构。核心理念:“Write Once, Run Anywhere”(一次编写,到处运行),通过 JVM 实现跨平台。1.2 语言特性序号特性说明1基本数据类型byte、short、int、long、float、double、char、boolean 八种基本类型,直接映射硬件底层,保证跨平台一致性2面向对象三大特性封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism),完整支持 OOP 范式3类与接口(Class Interface)class 关键字定义类,interface 关键字定义接口,支持单继承 + 多接口实现4抽象类与抽象方法(abstract)abstract 关键字修饰类和方法,强制子类实现特定方法5最终修饰(final)final 修饰类(不可继承)、方法(不可重写)、变量(不可重新赋值)6静态修饰(static)static 修饰方法、字段、代码块,属于类而非实例7访问控制修饰符public、protected、default(包私有)、private 四级访问控制8数组(Array)数组是一等对象,支持一维和多维数组,内置 length 属性,越界检查(ArrayIndexOutOfBoundsException)9流程控制语句if/else、switch/case、for、while、do-while、break、continue、return10异常处理机制try/catch/finally 语句块,throw 抛出异常,throws 声明异常11异常层次体系Throwable → Error / Exception → RuntimeException 的分层体系,区分受检异常与非受检异常12受检异常(Checked Exception)编译器强制要求处理或声明的异常(Exception 的非 RuntimeException 子类),这是 Java 独有的设计13垃圾回收(Garbage Collection)自动内存管理,程序员无需手动释放内存,通过标记-清除等算法回收不可达对象14字符串(String)java.lang.String 不可变字符串,字符串常量池机制15字符串拼接(+ 运算符)重载 + 运算符用于字符串连接,编译器自动转换为 StringBuffer.append()16自动类型提升与强制转换基本类型的自动拓宽(widening)和强制收窄(narrowing)17包装类(Wrapper Classes)Integer、Long、Double、Float、Boolean、Character、Byte、Short,基本类型的对象表示18instanceof 运算符运行时类型检查,判断对象是否为某类或其子类的实例19类型强制转换(Cast)(Type) 语法进行引用类型的向下转型20对象克隆(Cloneable)实现 Cloneable 接口 + 重写 Object.clone() 实现浅拷贝21内部类(Inner Class)支持在类内部定义类,包括成员内部类、局部内部类、匿名内部类22匿名内部类(Anonymous Inner Class)没有名字的临时类,常用于事件监听器和回调23包(Package)机制package 关键字组织类到命名空间,import 关键字引入其他包的类24反射(Reflection)基础java.lang.Class、java.lang.reflect 包,运行时获取类信息、调用方法、创建对象25本地方法(Native Method)native 关键字声明由其他语言(如 C/C++)实现的方法,通过 JNI 调用26线程基础(Thread)java.lang.Thread 类、Runnable 接口、synchronized 关键字、wait()/notify()/notifyAll()27synchronized 关键字方法级和代码块级同步,内置锁(Monitor)机制28volatile 关键字保证变量的可见性,禁止指令重排序29序列化(Serializable)java.io.Serializable 接口,对象的状态持久化与网络传输30transient 关键字标记不参与序列化的字段31枚举的缺失此版本无 enum 关键字,需用 int 常量 + 接口模拟枚举32泛型的缺失此版本无泛型支持,集合操作需要强制类型转换33自动装箱/拆箱的缺失基本类型与包装类之间需要手动转换34for-each 循环的缺失遍历集合需要显式使用 Iterator1.3 核心类库领域内容java.langObject、String、Math、System、Runtime、Thread、Throwable 等核心类java.io字节流(InputStream/OutputStream)、字符流(Reader/Writer)、文件操作(File)、序列化java.util集合框架雏形:Vector、Stack、Hashtable、Dictionary、Enumeration、Date、Random、Observablejava.netURL、URLConnection、Socket、ServerSocket、DatagramSocketjava.appletApplet 小程序(浏览器内运行的图形程序)java.awt抽象窗口工具包:Button、Label、TextField、Frame、Panel、Layout 等重量级组件java.lang.reflect反射 API:Method、Field、Constructor、Arrayjava.security安全框架基础:MessageDigest、Signature、Key二、JDK 1.1(1997年