在JDK 11中,Java引入了ZGC,这是一款可伸缩的低延迟垃圾收集器,但是当时只是实验性的.号称不管你开了多大的堆内存,它都能保证在 10 毫秒内释放 JVM ,不让它停顿在那.但是,当时的设计是它不能把内存归还给操作系统.对于比较关心内存占用的应用来说,肯定希望进程不要占用过多的内存空间了. 在Java 13中,JEP 351再次对ZGC做了增强,将没有使用的堆内存归还给操作系统.ZGC当前不能把内存归还给操作系统,即使是那些很久都没有使用的内存,也只进不出.这种行为并不是对任何应用和环境…
Java 13 的官方开发目标包含改进垃圾收集.应用程序的类数据共享和文本块 Java 开发工具包(JDK)13,标准 Java 的下一个版本,现在可作为候选版本使用,所有新功能都已锁定.JDK 13提出了一种功能,但从未添加到官方列表中,即用于打包自包含 Java 应用程序的 jpackage 工具,已经无缘晋级.JDK 13 不再考虑它. [新的 Java 已经来了!了解 Jakarta EE 企业 Java 路线图.|新 Java 版本在这里!你需要学习任何关于 Java JDK 11 的…
db2 get db cfg|find "CUR_COMMIT" 当前已落实                                   (CUR_COMMIT) = ON db2 update db cfg using cur_commit offDB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成. SQL1363W  未动态更改为立即修改而提交的一个或多个参数.对于这些配置参数,必须在所 有应用程序都与此数据库断开连接之后,更改才会…
在JDK 12中引入了Raw String Literals特性,但在发布之前就放弃了.这个JEP与引入多行字符串文字(text block) 在意义上是类似的. 这条新特性跟 Kotlin 里的文本块是类似的. 现实问题 在Java中,通常需要使用String类型表达HTML,XML,SQL或JSON等格式的字符串,在进行字符串赋值时需要进行 转义和连接操作,然后才能编译该代码,这种表达方式难以阅读并且难以维护. 文本块就是指多行字符串,例如一段格式化后的xml.json等.而有了文本块以后,…
新增 添加FileSystems.newFileSystem(Path, Map<String, ?>) Method 新的java.nio.ByteBuffer Bulk get/put Methods Transfer Bytes Without Regard to Buffer Position 支持Unicode 12.1 添加-XX:SoftMaxHeapSize Flag,目前仅仅对ZGC起作用 ZGC的最大heap大小增大到16TB 移除 移除awt.toolkit System…
全新实现的 NioSocketImpl 来替换JDK1.0的PlainSocketImpl. 它便于维护和调试,与 NewI/O (NIO) 使用相同的 JDK 内部结构,因此不需要使用系统本地代码. 它与现有的缓冲区缓存机制集成在一起,这样就不需要为 I/O 使用线程栈. 它使用 java.util.concurrent 锁,而不是 synchronized 同步方法,增强了并发能力. 新的实现是Java 13中的默认实现,但是旧的实现还没有删除,可以通过设置系统属性 jdk.net.useP…
支持在Java application执行之后进行动态archive.存档类将包括默认的基础层CDS存档中不存在的所有已加载的应用程序和库类.也就是说,在Java 13中再使用AppCDS的时候,就不再需要这么复杂了. 该提案处于目标阶段,旨在提高AppCDS的可用性,并消除用户进行试运行以创建每个应用程序的类列表的需要. 使用示例: # JVM退出时动态创建共享归档文件:导出jsa java -XX:ArchiveClassesAtExit=hello.jsa -cp hello.jar He…
引入了yield语句,用于返回值: 和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块. @Test public void testSwitch2(){ String x = "3"; int i = switch (x) { case "1" -> 1; case "2" -> 2; default -> { yield 3; } }; System.out.printl…
Java9 发布于 2017 年 9 月 21 日 .作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化其中最重要的改动是 Java 平台模块系统的引入,其他还有诸如集合.Stream 流 Java 平台模块系统 Java 平台模块系统,也就是 Project Jigsaw,把模块化开发实践引入到了 Java 平台中.在引入了模块系统之后,JDK 被重新组织成 94 个模块.Java 应用可以通过新增的 jlink 工具,创建出只包含所依赖的 JDK 模块的自定…
总览 讲讲Java 9-17 的一些语法糖和一些新发布的jeps, 重点讲讲JVM的垃圾回收器 时间线 SpringBoot 为什么选择Java17这个版本.我估计跟下面这个图有关系. Java 8 新特性 这里简单罗列一下Java 8 发布的jeps 1.Lambda表达式 2.函数式编程 3.接口可以添加默认方法和静态方法,也就是定义不需要实现类实现的方法 4.方法引用 5.重复注解,同一个注解可以使用多次 6.引入Optional来避免空指针 7.引入Streams相关的API 8.引入新…