Java9的新特性

Java语言特性系列

  • Java5的新特性
  • Java6的新特性
  • Java7的新特性
  • Java8的新特性
  • Java9的新特性
  • Java10的新特性

本文主要讲述一下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

相关解读

  • java9系列(三)模块系统精要
  • java9 opens与exports的区别
  • java9迁移注意事项
  • java9 module相关选项解析

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

相关解读

  • java9系列(一)安装及jshell使用

Unified JVM/GC Logging

相关JEP:

  • JEP 158: Unified JVM Logging
  • JEP 264: Platform Logging API and Service
  • JEP 271: Unified GC Logging

相关解读

  • java9 gc log参数迁移

HTTP/2 Client(Incubator)

支持HTTP2,同时改进httpclient的api,支持异步模式。

相关JEP

  • JEP 110: HTTP/2 Client (Incubator)

相关解读

  • java9系列(六)HTTP/2 Client (Incubator)

jshell: The Java Shell (Read-Eval-Print Loop)

相关JEP

  • JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)

相关解读

  • java9系列(一)安装及jshell使用

Convenience Factory Methods for Collections

相关JEP

  • JEP 269: Convenience Factory Methods for Collections

以前大多使用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

  • JEP 102: Process API Updates

相关解读

  • java9系列(四)Process API更新

Stack-Walking API

相关JEP

  • JEP 259: Stack-Walking API

相关解读

  • java9系列(五)Stack-Walking API

Variable Handles

相关JEP

  • JEP 193: Variable Handles

相关解读

  • java9系列(七)Variable Handles

docker方面支持

  • Java SE support for Docker CPU and memory limits
  • Docker CPU limits
  • Experimental support for Docker memory limits
  • Docker memory limits

其他

  • JEP 238: Multi-Release JAR Files
    • java9系列(八)Multi-Release JAR Files
  • JEP 266: More Concurrency Updates
  • JEP 274: Enhanced Method Handles
  • JEP 295: Ahead-of-Time Compilation

小结

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 中的新特性

本文分享自微信公众号 - 码匠的流水账(geek_luandun),作者:go4it

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 聊聊dubbo-go的failbackCluster

    dubbo-go-v1.4.2/cluster/cluster_impl/failback_cluster.go

    codecraft
  • 聊聊dubbo-go的failbackCluster

    dubbo-go-v1.4.2/cluster/cluster_impl/failback_cluster.go

    codecraft
  • 聊聊rocketmq-client-go的QueueSelector

    rocketmq-client-go-v2.0.0/producer/selector.go

    codecraft
  • Go 语言构建高并发分布式系统实践

    你知道互联网最抢手的技术人才有哪些吗?最新互联网职场生态报告显示,最抢手的十大互联网技术人才排名中Go语言开发人员位居第三,从中不难见得,Go语言的渗透率越来越...

    李海彬
  • 论架构的“捷径”

    笔者原本是业务人员,对计算机很感兴趣,机缘巧合,兴趣成了主业,更加机缘巧合的是,笔者的技术之路几乎都是走的企业级业务架构这条路,在国有行的企业级转型中一次性“浸...

    用户6900693
  • Go 语言构建高并发分布式系统实践

    你知道互联网最抢手的技术人才有哪些吗?最新互联网职场生态报告显示,最抢手的十大互联网技术人才排名中Go语言开发人员位居第三,从中不难见得,Go语言的渗透率越来越...

    李海彬
  • Go 语言构建高并发分布式系统实践

    你知道互联网最抢手的技术人才有哪些吗?最新互联网职场生态报告显示,最抢手的十大互联网技术人才排名中Go语言开发人员位居第三,从中不难见得,Go语言的渗透率越来越...

    李海彬
  • Go 语言构建高并发分布式系统实践

    你知道互联网最抢手的技术人才有哪些吗?最新互联网职场生态报告显示,最抢手的十大互联网技术人才排名中Go语言开发人员位居第三,从中不难见得,Go语言的渗透率越来越...

    李海彬
  • Pica8推出白盒交换机编排软件PicaPilot,进军园区网

    SDNLAB
  • SpringBoot实战 之 异常处理篇

    在互联网时代,我们所开发的应用大多是直面用户的,程序中的任何一点小疏忽都可能导致用户的流失,而程序出现异常往往又是不可避免的,那该如何减少程序异常对用户体验的影...

    庞小明

扫码关注云+社区

领取腾讯云代金券