Java9的新特性
Java语言特性系列
- Java5的新特性
- Java6的新特性
- Java7的新特性
- Java8的新特性
- Java9的新特性
- Java10的新特性
- Java11的新特性
- Java12的新特性
- Java13的新特性
- Java14的新特性
- Java15的新特性
- Java16的新特性
- Java17的新特性
- Java18的新特性
- Java19的新特性
- Java20的新特性
- Java21的新特性
序
本文主要讲述一下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 中的新特性
code-craft
spring boot , docker and so on 欢迎关注微信公众号: geek_luandun
推荐阅读
mac使用podman替代docker
序本文主要记录一下使用podman替代docker的过程安装podman {代码...} 或者去[链接]下载对应的pkgpodman compose {代码...} 或者 {代码...} 使用machine {代码...} init添加-v来挂载宿主机的文件夹到machinecompos...
codecraft阅读 164
Java8的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...
codecraft赞 32阅读 27.4k评论 1
一文彻底搞懂加密、数字签名和数字证书!
微信搜索🔍「编程指北」,关注这个写干货的程序员,回复「资源」,即可获取后台开发学习路线和书籍来源:个人CS学习网站:[链接]前言这本是 2020 年一个平平无奇的周末,小北在家里刷着 B 站,看着喜欢的 up 主视...
编程指北赞 71阅读 33.5k评论 20
Java11的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...
codecraft赞 28阅读 19.3k评论 3
Java5的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...
codecraft赞 13阅读 21.7k
Java13的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...
codecraft赞 17阅读 11.2k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。