天天看点

JAVA11 新特性(var,集合新的api,stream新的api,字符串处理,http操作。。。)

一个java的控制台工具,效果类似与浏览器的控制台,能够直接编写测试代码片段

什么是局部变量类型推断?

大家看出来了,局部变量类型推断就是左边的类型直接使用 var 定义,而不用具体的类型,编译器能根据右边的表达式自动推断类型,如上面的 String

在声明隐式类型的 lambda 表达式的形参时允许使用 var

使用 var 的好处是在使用 lambda 表达式时给参数加上注解

注意点:

var a; 这样不可以,因为无法推断

类的属性的数据类型不可以使用 var

通过 of() 生成的集合,是不可变的,实际使用的是 ImmutableCollections.class 中的内部类

Arrays.asList 实际返回对象 class java.util.Arrays$ArrayList,对象声明后,还是可以调用 set(int, E) 更新元素

用于处理生成流的元素可能为空的情况

传入一个判断表达式,在遍历流对象时使用,返回前面连续的判断条件为 true 的所有元素

类似与 Stream.filter(Predicate<? super T>),遍历元素过滤

丢弃前面连续的判断为 true 的所有元素,返回剩下的元素

缺点,这是一个无限流,容易出现出乎意料的错误,一般需要和 .limit(int) 配置使用,截取前面  n 个元素

添加了一个条件判断表达式,生成的元素经过判断表达式处理后如果返回为 false 就停止流迭代

开发一个处理内存分配但不实现任何实际内存回收机制的GC, 一旦可用堆内存用完,JVM就会退出。

用途

性能测试(它可以帮助过滤掉 GC引起的性能假象)

内存压力测试(例如,知道测试用例 应该分配不超过1GB的内存, 我们可以使用-Xmx1g –XX:+UseEpsilonGC, 如果程序有问题, 则程序会崩溃)

非常短的JOB任务(对象这种任务, 接受GC清理堆那都是浪费空间)

VM接口测试

Last-drop 延迟&吞吐改进

GC暂停时间不会超过10ms

既能处理几百兆的小堆, 也能处理几个T的大堆(OMG)

和G1相比, 应用吞吐能力不会下降超过15%

为未来的GC功能和利用colord指针以及Load barriers优化奠定基础

初始只支持64位系统

开源使用