Java1 橡树 Oak 1996-01-23
- 引入 JDBC
- 支持内部类
- 引入 Java Bean
- 引入 RMI
- 引入反射(仅用于内省)
Java2 竞技场 Playground 1998-12-04
- 引入 集合(Collection) 框架
- 对字符串常量做内存映射
- 引入 JIT(Just In Time) 编译器
- 引入对打包的 Java 文件进行 数字签名
- 引入控制授权访问系统资源的策略工具
- 引入 JFC(Java Foundation Classes),包括 Swing 1.0、拖放和 Java 2D 类库
- 引入 Java 插件
- 在 JDBC 中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型
- 在 Applet 中添加声音支持
Java3 美洲红隼 Kestrel 2000-05-08
- 引入 Java Sound API
- jar 文件索引;
- 对 Java 的各个方面都做了大量优化和增强
Java4 灰背隼 Merlin 2004-02-06(里程碑版本)
- XML 处理
- Java 打印服务
- 引入 Logging API
- 引入 Java Web Start
- 引入 JDBC 3.0 API
- 引入断言
- 引入 Preferences API
- 引入链式异常处理
- 支持 IPv6
- 支持正则表达式
- 引入 Image I/O API
Java5 老虎 Tiger 2004-09-30(语法易用性)
- 引入范型
- 枚举类型 Enumeration
- 自动拆装箱
- 可变参数,如 test(String... s)
- 添加注解,如 Override、Deprecated 等。
- 元数据 annotations,出现的作用就是用来替代 XML,可以说 annotations 就是将 xml 分割成了无数个单元,从而实现了和 XML 相同的作用,即注解替代配置文件
- 内容面板代理,在 JDK5.0 先前的版本中,JFrame,JDialog,JApplet 等类没有代理 add 和 setLayout 方法
- StringBuilder,相比之前的 StringBuffer 线程不同步,所以更高效
- for 的增强循环,如 for(type v : array){}
- 静态导入
- 可变返回类型,在 JDK5.0 以前,当覆盖父类方法时,返回类型是不能改变的
- 控制台输入,JDK 5.0 先前的版本没有 Scanner 类
- 格式化输出,System.out.printf("%8.2f", x);
- 引入 Instrumentation:使用 Instrumentation,开发者可以构建一个代理,用来监测运行在 JVM 上的程序。监测一般是通过在执行某个类文件之前,对该类文件的字节码进行适当修改进行的。如在 JVM 层级上做方法运行时间的代理 AOP。
Java6 野马 Mustang 2006-12-11
- 引入了一个支持脚本引擎的新框架
- UI 的增强
- 对 WebService 支持的增强(JAX-WS2.0 和 JAXB2.0)
- 增加对 Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos 和 LDAP(Lightweight Directory Access Protocol)的支持
- JDBC4.0
- Compiler API
- 可插拔注解
Java7 海豚 Dolphin 2011-07-28
- switch 可以使用字符串
- 增加二进制表示,如 0B1111
- 数字可添加下划线,如 12_34_56 等同于 123456
- 在创建泛型对象时应用类型推断
- 在一个语句块中捕获多种异常
- 支持 try-with-resources
- 引入 Java NIO.2 开发包
- 钻石型语法
- null 值的自动处理
- Map 集合支持并发请求,且可以写成 Map map = {name:"xxx",age:18};
- java.lang 包优化,去掉非分层委托定制类加载器
- JVM 简化动态编译语言的实施
- 对安全、并发、2D、国际化作了优化
- JDBC 版本更新,更新为 JDBC4.1(java6 是 jdbc4.0)
- URL 类增强
- Collection 类增强
- XML 技术增强
- Swing 新增一些组件,如自定义绘画,自定义形状的窗体,色彩选择器,自定义皮肤,半透明属性等
Java8 蜘蛛 Spider 2014-03-19
-
接口增加默认方法(扩展方法)
实现类不需要实现这个方法,直接可以使用默认 -
Lambda 表达式
这 2 个 sort 方法效果一样 -
函数化接口(只有一个抽象方法的接口,用 @FunctionalInterface 表示)
他有 2 种方式实现:
-
List 操作
新增 Stream 接口来处理 Collection
lis 可以转成 Stream 然后进行一些操作
-
Map 操作
-
新增的一些接口
Predicate 接口(断言)Function 接口(函数)Supplier 接口(供应商)Consumer 接口(消费者)Comparator 接口(比较)Optional 接口( 可选) -
改进 Date 类
-
支持多重注解
允许把同一个类型的注解使用多次 -
把 sun 下的 base64 编码和解码包引入 jdk 中,放在 java.util 下
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于