随笔分类 -  【Java12&13新特性】

摘要:新增 添加FileSystems.newFileSystem(Path, Map) Method 新的java.nio.ByteBuffer Bulk get/put Methods Transfer Bytes Without Regard to Buffer Position 支持Unicode 阅读全文
posted @ 2019-11-12 21:04 西北野狼
摘要:在JDK 11中,Java引入了ZGC,这是一款可伸缩的低延迟垃圾收集器,但是当时只是实验性的。号称不管你开了多大的堆内存,它都能保证在 10 毫秒内释放 JVM ,不让它停顿在那。但是,当时的设计是它不能把内存归还给操作系统。对于比较关心内存占用的应用来说,肯定希望进程不要占用过多的内存空间了。 阅读全文
posted @ 2019-11-12 20:58 西北野狼
摘要:全新实现的 NioSocketImpl 来替换JDK1.0的PlainSocketImpl。 它便于维护和调试,与 NewI/O (NIO) 使用相同的 JDK 内部结构,因此不需要使用系统本地代码。 它与现有的缓冲区缓存机制集成在一起,这样就不需要为 I/O 使用线程栈。 它使用 java.uti 阅读全文
posted @ 2019-11-12 20:51 西北野狼
摘要:支持在Java application执行之后进行动态archive。存档类将包括默认的基础层CDS存档中不存在的所有已加载的应用程序和库类。也就是说,在Java 13中再使用AppCDS的时候,就不再需要这么复杂了。 该提案处于目标阶段,旨在提高AppCDS的可用性,并消除用户进行试运行以创建每个 阅读全文
posted @ 2019-11-12 20:43 西北野狼
摘要:在JDK 12中引入了Raw String Literals特性,但在发布之前就放弃了。这个JEP与引入多行字符串文字(text block) 在意义上是类似的。 这条新特性跟 Kotlin 里的文本块是类似的。 现实问题 在Java中,通常需要使用String类型表达HTML,XML,SQL或JS 阅读全文
posted @ 2019-11-12 20:40 西北野狼
摘要:引入了yield语句,用于返回值; 和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块。 阅读全文
posted @ 2019-11-12 20:19 西北野狼
摘要:支持unicode 11 JDK 12版本包括对Unicode 11.0.0的支持。在发布支持Unicode 10.0.0的JDK 11之后,Unicode 11.0.0引 入了以下JDK 12中包含的新功能: 684 new characters 11 new blocks 7 new scrip 阅读全文
posted @ 2019-10-30 17:51 西北野狼
摘要:Java 12 中增强了 G1 垃圾收集器关于混合收集集合的处理策略,这节主要介绍在 Java 12 中同时也对 G1垃圾回收器进行了改进, 使其能够在空闲时自动将 Java 堆内存返还给操作系统 ,这也是 Java 12 中的另外一项重大改进。 目前 Java 11 版本中包含的 G1 垃圾收集器 阅读全文
posted @ 2019-10-26 14:32 西北野狼
摘要:G1是一个垃圾收集器,设计用于具有大量内存的多处理器机器。由于它提高了性能效率,G1垃圾收集器最终将取代CMS垃圾收集器。 该垃圾收集器设计的主要目标之一是满足用户设置的预期的 JVM 停顿时间。 G1 采用一个高级分析引擎来选择在收集期间要处理的工作量,此选择过程的结果是一组称为 GC 回收(co 阅读全文
posted @ 2019-10-26 13:24 西北野狼
摘要:默认生成类数据共享(CDS)归档文件 同一个物理机/虚拟机上启动多个JVM时,如果每个虚拟机都单独装载自己需要的所有类,启动成本和内 存占用是比较高的。所以Java团队引入了类数据共享机制 (Class Data Sharing ,简称 CDS) 的概念,通过把一些核心类在每个JVM间共享,每个JV 阅读全文
posted @ 2019-10-26 13:05 西北野狼
摘要:现状 当前 Java 11 及之前版本JDK中存在两个64位ARM端口。这些文件的主要来源位于src/hotspot/cpu/arm 和 open/src/hotspot/cpu/aarch64 目录中。尽管两个端口都产生了aarch64 实现,我们将前者(由Oracle贡献)称 为arm64 ,将 阅读全文
posted @ 2019-10-21 11:26 西北野狼
摘要:Java 12 中引入 JVM 常量 API,用来更容易地对关键类文件 (key class file) 和运行时构件(artefact)的名义描述 (nominal description) 进行建模,特别是对那些从常量池加载的常量,这是一项非常技术性的变化,能够以更简 单、标准的方式处理可加载常 阅读全文
posted @ 2019-10-20 16:05 西北野狼
摘要:Shenandoah 垃圾回收器是 Red Hat 在 2014 年宣布进行的一项垃圾收集器研究项目 Pauseless GC 的实现,旨在针对 JVM 上的内存收回实现低停顿的需求。该设计将与应用程序线程并发,通过交换 CPU 并发周期和空间以改善停顿时间,使得垃圾回收器执行线程能够在 Java 阅读全文
posted @ 2019-10-19 19:46 西北野狼
摘要:传统switch表达式的弊端: 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行; 所有的case语句共用一个块范围,在不同的case语句定义的变量名不能重复; 不能在一个case里写多个执行结果一致的条件; 整个switch不能作为表达式返回值; java 12 s 阅读全文
posted @ 2019-10-19 19:25 西北野狼