Java语言特性系列
序
本文主要讲述一下Java9的新特性
特性列表
完整的特性详见JDK 9 features,这里列几个相对重要的:
模块系统JPMS(重磅)
相关的规范及JEP:
相关解读
G1成为默认垃圾回收器
相关JEP:
相关解读
Unified JVM/GC Logging
相关JEP:
相关解读
HTTP/2 Client(Incubator)
支持HTTP2,同时改进httpclient的api,支持异步模式。
相关JEP
相关解读
jshell: The Java Shell (Read-Eval-Print Loop)
相关JEP
相关解读
Convenience Factory Methods for Collections
相关JEP
以前大多使用Guava类库集合类的工厂,比如
Lists.newArrayList(1,2,3,4,5);
Sets.newHashSet(1,2,3,4,5);
Maps.newHashMap();
注意,上面这种返回的集合是mutable的
现在java9可以直接利用jdk内置的集合工厂,比如
List.of(1,2,3,4,5);
Set.of(1,2,3,4,5);
Map.of("key1","value1","key2","value2","key3","value3");
注意,jdk9上面这种集合工厂返回的是immutable的
Process API Updates
相关JEP
相关解读
Stack-Walking API
相关JEP
相关解读
Variable Handles
相关JEP
相关解读
docker方面支持
其他
小结
java9大刀阔斧,重磅引入了模块化系统,自身jdk的类库也首当其冲模块化。新引入的jlink可以精简化jdk的大小,外加Alpine Linux的docker镜像,可以大大减少java应用的docker镜像大小,同时也支持了Docker的cpu和memory限制(Java SE 8u131及以上版本开始支持),非常值得使用。
doc