JDK新特性

JDK15新特性详解,2020-09-15正式发布

JDK14新特性详解,2020-03-17正式发布

JDK13新特性详解,2019-09-17正式发布

JDK12新特性详解,2019-03-19正式发布

1、JDK12之Shenandoah低暂停时间垃圾收集器(实验性)

定义:
	添加一个名为Shenandoah的新垃圾收集(GC)算法,通过与正在运行的Java线程同时进行疏散工作
来减少GC暂停时间。使用Shenandoah的暂停时间与堆大小无关,这意味着无论堆是200MB还是200GB,
都将具有相同的一致暂停时间。

非目标:
	这不是一个统治所有人的GC。还有其他垃圾收集算法可以优先考虑吞吐量或内存占用而不是响应性。
Shenandoah是适用于评估响应性和可预测的短暂停顿的应用程序的算法。
  	目标不是解决所有JVM暂停问题。由于GC之外的其他原因(例如安全时间点(TTSP)发布或监控通胀)
而暂停时间超出了此JEP的范围。

构建和调用:
	作为实验性功能,Shenandoah将-XX:+UnlockExperimentalVMOptions在命令行中要求。Shenandoah构建系统会自动禁用不受支持的配置。下游建设者可以选择--with-jvm-features=-shenandoahgc在其他支持的平台上禁用构建Shenandoah。要启用/使用Shenandoah GC,需要以下JVM选项:
	-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC

摘录自:九重天

JDK11新特性详解,2018-09-25正式发布

1、增强局部变量类型推断var

	Consumer<String> consumer = t -> System.out.println(t.toUpperCase());
	Consumer<String> consumer = (var t) -> System.out.println(t.toUpperCase());
错误的形式:必须要有类型,可以加上var
	Consumer<String> consumer = (@Deprecated t) ->System.out.println(t.toUpperCase())
	正确的形式
	Consumer<String> consumer = (@Deprecated var t) ->System.out.println(t.toUpperCase())

2、增加一些实用的API

  自JDK9和JDK10都为java增加了许多的API,如今JDK11又增加了许多字符串自带方法,如下
@Test
public void contextLoads() {
    String str = "woshidage";
    boolean isblank = str.isBlank();  //判断字符串是空白
    boolean isempty = str.isEmpty();  //判断字符串是否为空
    String  result1 = str.strip();    //首位空白
    String  result2 = str.stripTrailing();  //去除尾部空白
    String  result3 = str.stripLeading();  //去除首部空白
    String  copyStr = str.repeat(2);  //复制几遍字符串
    long  lineCount = str.lines().count();  //行数统计
    System.out.println(isblank);
    System.out.println(isempty);
    System.out.println(result1);
    System.out.println(result2);
    System.out.println(result3);
    System.out.println(copyStr);
    System.out.println(lineCount);
}

JDK10新特性详解,2018-03-20正式发布

主要为以下,其他的未列出来
1、局部变量var
将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为null,因为不能判断具体类型,会报异常。
2、copyOf方法
在java.util.List、java.util.Set、java.util.Map新增加了一个静态方法copyOf,这些方法按照其迭代顺序返回一个不可修改的列表、集合或映射包含了给定的元素的集合。但是如果将返回后的集合继续修改,那么报异常。
3、ByteArrayOutputStream
Java.io.ByteArrayOutputStream,重载toString()方法,通过使用指定的字符集编码字节,将缓冲区的内容转换为字符串,以前是默认没有参数,现在加了一个编码的字符方法。
4、垃圾收集器的优化
1、JDK9垃圾收集器 :新生代:ParNew收集器;老年代:Parallel Old收集器 Stop The World
2、JDK10垃圾收集器:JDK10:G1(Garbage-Frist)全收集器

JDK9 新特性详解,2017-09-21正式发布

JDK 9中的新工具:
1、Java Shell
2、添加更多的诊断命令
3、删除启动时间JRE版本选择
4、jlink:Java连接器
5、多版本兼容Jar

JDK 9中新的安全性:
1、数据报传输层安全性(DTLS)
2、禁用sha - 1证书
JDK 9中核心库的新内容:

1、进程API更新:新增ProcessHandle类,该类提供进程的本地进程ID、参数、命令、启动时间、累计CPU时间、用户、父进程和子进程。这个类还可以监控进程的活力和破坏进程。ProcessHandle。onExit方法,当进程退出时,复杂未来类的异步机制可以执行一个操作。

2、更多的并发更新:包括一个可互操作的发布-订阅框架,以及对CompletableFuture API的增强。

3、便利的工厂方法对于Collections:用少量的元素创建集合和映射的实例更容易。在列表、设置和映射接口上的新静态工厂方法使创建这些集合的不可变实例变得更加简单 例子:Set alphabet = Set.of(“1”, “2”, “3”);

JDK8 新特性详解,2014-03-18正式发布

JDK8的主要新特性六个:Lambda、Stream、Date、新注解、函数编程、并发,前两者主要用于集合中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值