首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java9新特性

Java语言特性系列 Java5新特性 Java6新特性 Java7新特性 Java8新特性 Java9新特性 Java10新特性 序 本文主要讲述一下Java9新特性 特性列表 完整特性详见...系列(三)模块系统精要 java9 opens与exports区别 java9迁移注意事项 java9 module相关选项解析 G1成为默认垃圾回收器 相关JEP: JEP 248: Make G1... 现在java9可以直接利用jdk内置集合工厂,比如 List.of(1,2,3,4,5); Set.of(1,2,3,4,5); Map.of("key1","value1","key2","value2...新引入jlink可以精简化jdk大小,外加Alpine Linuxdocker镜像,可以大大减少java应用docker镜像大小,同时也支持了Dockercpu和memory限制(Java SE...区别 java9迁移注意事项 java9 gc log参数迁移 java9 module相关选项解析 使用maven构建java9 service实例 使用示例带你提前了解 Java 9 中新特性

80220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【大牛经验】Java9新特性

    我们将快速,着重浏览其中几个新特性: 模块化系统–Jigsaw 项目 模块化是一个很通用概念。...在软件中,模块化可以运用到编写和实现一个程序和计算系统,他们都是作为独立模块,而不是作为一个单一和完整设计。 Java 9中主要变化是已经实现模块化系统。...模块化引入使得JDK可以在更小设备中使用。采用模块化系统应用程序只需要这些应用程序所需那部分JDK模块,而非是整个JDK框架了。模块化系统也可以将公共类封装到一个模块中。...因此一个封装在模块中定义为public类不能再任何地方使用,除非一个模块显式定义了这个模块。由于Java 9这个变化,Java内部API(例如com.sun.*)默认情况下是不能使用。...这个新API定义在java.awt.image包中,这个API能给我们带来如下帮助: * 将不同分辨率图像封装到一张(多分辨率)图像中,作为它变体。 * 获取这个图像所有变体。

    89780

    【大牛经验】Java9新特性

    【大牛经验】Java9新特性 Java 9 包含了丰富特性集。虽然Java 9没有新语言概念,但是有开发者感兴趣API和诊断命令。 我们将快速,着重浏览其中几个新特性: ?...Java 9中主要变化是已经实现模块化系统。模块化引入使得JDK可以在更小设备中使用。采用模块化系统应用程序只需要这些应用程序所需那部分JDK模块,而非是整个JDK框架了。...模块化系统也可以将公共类封装到一个模块中。因此一个封装在模块中定义为public类不能再任何地方使用,除非一个模块显式定义了这个模块。...这个新API定义在java.awt.image包中,这个API能给我们带来如下帮助: * 将不同分辨率图像封装到一张(多分辨率)图像中,作为它变体。 * 获取这个图像所有变体。...* 获取特定分辨率图像变体–表示一张已知分辨率单位为DPI特定尺寸大小逻辑图像,并且这张图像是最佳变体。

    55030

    java9 opens与exports区别

    序 本文主要研究下java9 opens与exports区别 open及exports open open module 主要用于解决deep reflection问题,open作用是表示该模块下所有的包在...runtime都允许deep reflection(包括public及private类型) 但是编译时期,仅仅允许该module中声明过exports包可以访问,如果没有exports则该包类在编译时期不可读...opens package 用于声明该模块指定包在runtime允许使用反射访问 exports 表示允许在编译时和运行时访问指定包public成员 open及exports对反射影响 反射方法...小结 open表示允许运行时通过反射使用open作用是表示该模块下所有的包在runtime都允许deep reflection(包括public及private类型);opens package作用只是允许该包在...runtime都允许deep reflection open及opens都仅仅是开放runtime时期可以通过反射访问(蕴含了运行时exports)。

    44820

    Java9GC调优基础

    JDK维护者在GC选择上一直是比较保守,G1从JDK 1.6时代就开始进入开发者视野,直到今天正式成为Hotspot默认GC,也是走了很长路。...本文将包含以下内容: GC作用范围 GC负责事情 JVM中4种GC G1一些细节 使用Java 9正式版对G1进行测试 一些简单GC调优方法 一、GC作用范围 要谈GC作用范围,首先要谈JVM...在老年代中进行压缩 在上一条基础上,将还存活对象进行压缩(CMS和G1行为与此有些不同之处),压缩过程就是将存活对象从老年代起点进行挨个复制,使得老年代维持在一片连续内存中,消除内存碎片,...G1会在平衡吞吐和响应时延基础上,尽可能满足用户需求。它适用JVM往往有以下特征: 堆大小可能达到数十G(或者更大),同时存活对象数量也很多。...注意传统VM参数-XX:+PrintGCDetails在Java9中已经废弃,会有Warning信息。

    71370

    闲谈java9到20

    一、概述     自从java9开始商用后,到现在一直停留在java8上。...java8时候对接口进行了改动,使接口可以编写方法体。java9对这一功能进行了升级,增加支持私有方法。     try-resource也进行了升级,可以直接传入句柄不用再转换了。...另外,java9自己实现了一套httpclient不用再引用第三方实现了。 2.2 JDK10     G1终于正名了,java10开始,G1成为默认垃圾回收器。    ...String增加类似trim实用方法,可以不用再用lang3包实现了。     丰富了java9httpclient包方法。     引入了一个新垃圾回收器:Epsilon。...建议还停留在1.8可以升级到17,已升级到17,再等几个月升级到21。总而言之,java9~20是个不断吸取他人长处弥补自己短处过程,java在进步,我们也是时候更近一步了。

    84920

    JavaSE:Java9 新特性

    大家好,又见面了,我是你们朋友全栈君。 1.  ...Java9概述     Java发布于2017年9月发布,带来了很多新特性,其中最主要变化是模块化系统     模块就是代码和数据封装体,模块代码被组织成多个包,每个包中包含java类和接口,模块数据则包括资源文件和其他静态信息...具体如下:             module 模块名称 {             }       模块化优势           减少内存开销           可简化各种类库和大型应用开发和维护...钻石操作符使用升级     在Java9中,允许在匿名内部类使用中,使用钻石操作符     代码 4.  ...集合工厂方法       基本概念           Java9List, Set 和 Map集合中,增加了静态工厂方法of,实现不可变实例创建           不可变体现在无法添加、删除和修改它们元素

    35520

    Java9 9 个新特性

    Java 平台级模块系统 Java 9 定义功能是一套全新模块系统。当代码库越来越大,创建复杂,盘根错节“意大利面条式代码”几率呈指数级增长。...在这个模块描述器中, 对其它模块依赖是通过 “requires” 来表示。另外, “exports” 语句控制着哪些包是可以被其它模块访问到。所有不被导出包默认都封装在模块里面。...你应用程序模块现在将声明其对其他应用程序模块依赖以及对其所使用 JDK 模块依赖。为什么不使用这些信息创建一个最小运行时环境,其中只包含运行应用程序所需那些模块呢?...jshell 即时反馈使它成为探索 API 和尝试语言特性好工具。 测试一个 Java 正则表达式是一个很好说明 jshell 如何使您生活更轻松例子。...多版本兼容 JAR 我们最后要来着重介绍这个特性对于库维护者而言是个特别好消息。当一个新版本 Java 出现时候,你库用户要花费数年时间才会切换到这个新版本。

    99090

    原 荐 Java9之HttpClientAP

    Java9之HttpClientAPI实战详解 前言 相信关注java9小伙伴们都知道java9版本内置模块提供了Http功能,当然并不是说之前jdk之前并不支持,那么这次更新又多了什么呢?...如果想使用Java9HttpClient服务,那么你必须熟悉(jdk.incubator.http)包中以下三个类: HttpClient http客户端 该类是Java9开始引入,官方文档翻译说明是这样...在所有情况下,提供处理程序功能都是方便实现, 它忽略了提供状态代码和头文件,并返回相关预定义BodyProcessor 。...cf.join(); System.out.println("uri:"+resp.uri()+"---body:"+resp.body()); }); } } Java9...相关文章 Java9之Shell入门 https://my.oschina.net/u/3048852/blog/1543044 Java9 Module解惑 https://my.oschina.net

    1.3K20

    Java9 9 个新特性

    Java 平台级模块系统 Java 9 定义功能是一套全新模块系统。当代码库越来越大,创建复杂,盘根错节“意大利面条式代码”几率呈指数级增长。...在这个模块描述器中, 对其它模块依赖是通过 “requires” 来表示。另外, “exports” 语句控制着哪些包是可以被其它模块访问到。所有不被导出包默认都封装在模块里面。...Linking 当你使用具有显式依赖关系模块和模块化 JDK 时,新可能性出现了。你应用程序模块现在将声明其对其他应用程序模块依赖以及对其所使用 JDK 模块依赖。...jshell 即时反馈使它成为探索 API 和尝试语言特性好工具。 ? 测试一个 Java 正则表达式是一个很好说明 jshell 如何使您生活更轻松例子。...多版本兼容 JAR 我们最后要来着重介绍这个特性对于库维护者而言是个特别好消息。当一个新版本 Java 出现时候,你库用户要花费数年时间才会切换到这个新版本。

    76190

    原 荐 Java9 Module解惑

    Java9模块系统特性 Java SE 9模块系统提供以下便利性: 在Java SE 9中分离了JDK, JRE,jar等为更小模。因此我们可以方便使用任何我们想要模块。...Java9模块是代码、数据和有些资源自描述集合。它是一套相关package、type(类、抽象类,接口等)与代码&数据和资源。...它叫作基本模块。 它是一个独立模块并且没有依赖于所有其他模块。 默认情况下,其他模块依赖于这个模块。 所以“java.base”模块是被成为Java9模块化系统之母。...它是所有JDK模块和用户定义Modules默认模块. 对比Java 8和Java9应用 使用Java 5,6,7或者8.,我们已经开发了许多Java应用程序。...应用其余同初期版本应用一样如下所示。 ? 像Java 8应用一样,顶层组件是package,在Java9中则使用module作为顶层组件。

    1.3K40

    2017年3月Java9带来革新!

    一:计划 2016-05-26: 功能开发完成 2016-08-11: 执行测试 2016-09-01: 开始减速 2016-10-20: 零错误反弹(注:指在项目中某一点上,开发活动最终赶上了测试步伐...212: 解析 Lint 和 Doclint 告警 213: 打磨Coin项目:(译注:Coin是一个改进Java语法使用性项目) 214: 移除 JDK 8 中废弃GC组合 215: 让 javac...PKCS12 秘钥库 231: 移除启动时对JRE版本选择 232: 改进应用安全性能 233: 自动生成运行时编译器测试用例 235: 测试 javac 生成 class 文件属性 236: 为...Nashorn 提供解析API:(译注:Nashorn是JDK自带Javascript引擎) 237: Linux/AArch64 移植 238: JAR 文件支持多个版本:JAR文件可同时包含多个版本...270: 为临界区预留栈资源 271: 统一 GC 日志 272: 提供平台相关桌面应用功能 273: 基于确定性随机数产生器(DRBG) SecureRandom 实现 274: 改进方法句柄(

    99340
    领券