Java 作为一门经久不衰的语言,已经发展了20多年,本文简单罗列了各个版本的一些重要特性。大家可以根据自己公司需要,选择合适的版本。
? Java 13
发布时间:2019年3月
新特性:
•switch 语法优化更新•文本块升级•动态CDS档案•取消使用未使用的内存•重新实现旧版套接字API•FileSystems.newFileSystem新方法•nio新方法•核心库/ java.time•核心库/ java.util中:I18N•热点/ GC•安全库/ java.security•删除功能
? Java 12
发布时间:2019年3月
新特性:
•Shenandoah:低暂停时间的 GC(实验性功能)•JMH 基准测试•Switch 表达式(预览功能)•JVM 常量 API•只保留一个 ARM 64位实现(aarch64)•默认类数据共享归档文件•G1的可中断 mixed GC•改进G1垃圾收集器,以便在不活动时将Java堆内存归还给操作系统
? Java 11
Java 11 是自 Java 8 后的首个长期支持版本,将支持到2026年!
发布时间:2018年9月
新特性:
•基于嵌套的访问控制•动态的类文件常量•改进 Aarch64 Intrinsics•Epsilon 垃圾回收器,又被称为"No-Op(无操作)"回收器•移除 Java EE 和 CORBA 模块,JavaFX 也已被移除•HTTP Client (Standard)•用于 Lambda 参数的局部变量语法•采用 Curve25519 和 Curve448 算法实现的密钥协议•Unicode 10•实现 ChaCha20 和 Poly1305 加密算法•启动单个 Java 源代码文件的程序•低开销的堆分配采样方法•对 TLS 1.3 的支持•ZGC:可伸缩的低延迟垃圾回收器,处于实验性阶段•弃用 Nashorn JavaScript 引擎•弃用 Pack200 工具及其 API
? Java 10
发布时间:2018年3月
新特性:
•var 类型推断•将原来用 Mercurial 管理的众多 JDK 仓库代码,合并到一个仓库中,简化开发和管理过程。•统一的 GC 接口•G1 垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。•应用程序类数据 (AppCDS) 共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。•ThreadLocal 握手交互。在不进入到全局 JVM 安全点 (Safepoint) 的情况下,对线程执行回调。优化可以只停止单个线程,而不是停全部线程或一个都不停。•移除 JDK 中附带的 javah 工具。可以使用 javac -h 代替。•使用附加的 Unicode 语言标记扩展。•能将堆内存占用分配给用户指定的备用内存设备。•使用 Graal 基于 Java 的编译器,可以预先把 Java 代码编译成本地代码来提升效能。•在 OpenJDK 中提供一组默认的根证书颁发机构证书
? Java 9
发布时间:2017年9月
新特性:
•“JShell”的新工具•完全支持 HTTP 2.0 并带来新的 HTTP 客户端,它会代替 HttpURLConnection —— 同时还会实现 HTTP 2.0 和 Web Socket。•模块化的 JVM,使之可以在内存有限的设备上运行。JVM 可以只运行那些应用程序需要的模块和 API。•轻量级的 JSON API•智能 Java 编译•接口中引入私有方法。从 Java SE 9 开始可以在接口中使用 ‘private’ 关键字写私有方法和私有静态方法了。•响应式流•多分辨率图像 API•改进 GC (垃圾回收)•HTML5 Javadocs•改进 Stream(流) API•增强 @Deprecated 注解•改进 Optional 类•改进 CompletableFuture API
? Java 8
发布时间:2014年3月
新特性:
•函数式接口•Lambda表达式•方法引用•接口的default方法和静态方法•Optional•Streams•Date和Time API•Type注解•Nashhorn JavaScript引擎•并发计数器•Parallel操作•移除PermGen Error•TLS SNI
? Java 7
发布时间:2011年7月
新特性:
•switch增加对String的支持•在创建泛型对象时应用类型推断;•try/catch 可以 catch 多个异常类型•支持动态语言;•支持try-with-resources;•引入Java NIO.2开发包;•数值类型可以用二进制字符串表示,并且可以在字符串表示中添加下划线;•钻石型语法;•Boolean类型反转,空指针安全,参与位运算•Objects类增加避免空指针的equals方法•对Java集合( Collections)的增强支持
? Java 6
发布时间:2006年4月
新特性:
•支持脚本语言;•引入JDBC 4.0 API;•引入Java Compiler API;•可插拔注解;•增加对Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支持;•继承Web Services;
? Java 5
发布时间:2004年10月
新特性:
•引入泛型;•增强循环,可以使用迭代方式;•自动装箱与自动拆箱;•类型安全的枚举;•可变参数;•静态引入;•元数据(注解);•新的线程模型和并发库•内省(introspector)
? Java 1.4
发布时间:2004年2月
新特性:
•XML处理;•Java打印服务;•引入Logging API;•引入Java Web Start;•引入JDBC 3.0 API;•引入断言;•引入Preferences API;•引入链式异常处理;•支持IPv6;•支持正则表达式;•引入Image I/O slot machine API。
? Java 1.3
发布时间:2000年5月
新特性:
•引入Java Sound API;•jar文件索引;•对Java的各个方面都做了大量优化和增强。
? Java 1.2
发布时间:1998年12月
新特性:
•引入集合(Collection)框架;•对字符串常量做内存映射;•引入JIT(Just In Time)编译器;•引入对打包的Java文件进行数字签名;•引入控制授权访问系统资源的策略工具;•引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D类库;•引入Java 插件;•在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型;•在Applet中添加声音支持。
? Java 1.1
发布时间:1997年2月
新特性:
•引入JDBC(Java Database Connectivity);•支持内部类;•引入Java Bean;•引入RMI(Remote Method Invocation);•引入反射(仅用于内省)。
END