Java语言特性系列
- Java5的新特性
- Java6的新特性
- Java7的新特性
- Java8的新特性
- Java9的新特性
- Java10的新特性
- Java11的新特性
- Java12的新特性
- Java13的新特性
- Java14的新特性
- Java15的新特性
- Java16的新特性
- Java17的新特性
- Java18的新特性
- Java19的新特性
- Java20的新特性
- Java21的新特性
- Java22的新特性
序
本文主要讲述一下Java9的新特性
特性列表
完整的特性详见JDK 9 features,这里列几个相对重要的:
模块系统JPMS(重磅
)
相关的规范及JEP:
- Java Platform Module System (JSR 376)
- JEP 261: Module System
- JEP 200: The Modular JDK
- JEP 201: Modular Source Code
- JEP 282: jlink: The Java Linker
- JEP 220: Modular Run-Time Images
- JEP 260: Encapsulate Most Internal APIs
相关解读
G1成为默认垃圾回收器
相关JEP:
- JEP 248: Make G1 the Default Garbage Collector
- JEP 291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector
- JEP 278: Additional Tests for Humongous Objects in G1
相关解读
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方面支持
- Java SE support for Docker CPU and memory limits
- Docker CPU limits
- Experimental support for Docker memory limits
- Docker memory limits
其他
小结
java9大刀阔斧,重磅引入了模块化系统,自身jdk的类库也首当其冲模块化。新引入的jlink可以精简化jdk的大小,外加Alpine Linux的docker镜像,可以大大减少java应用的docker镜像大小,同时也支持了Docker的cpu和memory限制(Java SE 8u131及以上版本开始支持
),非常值得使用。
doc
- JDK 9 features
- Java 9 新特性概述
- java9系列(一)安装及jshell使用
- java9系列(二)docker运行java9
- java9系列(三)模块系统精要
- java9系列(四)Process API更新
- java9系列(五)Stack-Walking API
- java9系列(六)HTTP/2 Client (Incubator)
- java9系列(七)Variable Handles
- java9系列(八)Multi-Release JAR Files
- java9系列(九)Make G1 the Default Garbage Collector
- java9 opens与exports的区别
- java9迁移注意事项
- java9 gc log参数迁移
- java9 module相关选项解析
- 使用maven构建java9 service实例
- 使用示例带你提前了解 Java 9 中的新特性
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。