Java11新特性 - Epsilon GC和ZGC】的更多相关文章

Java11中新增了两个GC,Epsilon GC和ZGC. Epsilon垃圾收集器 A NoOp Garbage Collector 没有操作的垃圾收集器 JDK上对这个特性的描述是:开发一个处理内存分配但不实现任何实际内存回收机制的GC, 一旦可用堆内存用完,JVM就会退出. 如果有System.gc()调用,实际上什么也不会发生(这种场景下和-XX:+DisableExplicitGC效果一样), 因为没有内存回收,这个实现可能会警告用户尝试强制GC是徒劳. 用法 -XX:+Unlock…
Java11 新特性 新增字符串处理方法 新增方法: 判断字符串是否为空白 " ".isBlank(); // true 去除首尾空白 " Javastack ".strip(); // "Javastack" 去除尾部空格 " Javastack ".stripTrailing(); // " Javastack" 去除首部空格 " Javastack ".stripLeading()…
1.Java反射机制 Java反射(Reflection)概念:在运行时动态获取类的信息以及动态调用对象方法的功能. 1.1反射的应用--通过全类名获取类对象及其方法 package two.reflection; import java.util.Scanner; import java.lang.reflect.Method; public class Test1 { } ​ class TestRef { public static void main(String[] args) { S…
在去年的9月26日,Oracle官方宣布Java11正式发布,这是Java大版本周期变化后的第一个长期支持版本,非常值得关注.Java9和Java10都在很短的时间内就过渡了,所以,Java11将是一个不可忽视的版本.从时间节点看,JDK11的发布正好处在JDK8免费更新到期的前夕,同时,JDK8.9也将陆续成为"历史版本". 那么,关于Java11的新特性到底有哪些呢?容我一一介绍. 局部类型推断 什么是局部类型推断? var str = "helloworld"…
Java11又出新版本了,我还在Java8上停着.不过这也挡不住我对他的热爱,忍不住查看了一下他的新性能,由于自己知识有限,只总结了以下八个特性: 1.本地变量类型推断 什么是局部变量类型推断? var javastack = "javastack"; System.out.println(javastack); 大家看出来了,局部变量类型推断就是左边的类型直接使用 var 定义,而不用写具体的类型,编译器能根据右边的表达式自动推断类型,如上面的 String . var javast…
1. 新的本机不可修改集合API 自从Java9开始,JDK里面为集合(List/Set/Map)都添加了of和copyOf方法,他们可以来创建不可变的集合. Question1:什么叫做不可变集合? 不能对集合进行添加.删除.替换.排序等操作,否则会报java.lang.UnsupportedOperationException错误. 示例代码: List<String> list = List.of("aa", "bb", "cc"…
局部变量类型推断增强 Java11中可以在lambda表达式的形参中使用var,好处是可以在形参上加注解 使用示例 (@Deprecated var x, @Nullable var y)->x.process(y) API增强 不可修改集合API //Jdk 里面为集合(List/ Set/ Map)都添加了 of 和 copyOf 方法,它们两个都用来创建不可变的集合 //示例1 var list = List.of("Java", "Python", &…
Shenandoah 垃圾回收器是 Red Hat 在 2014 年宣布进行的一项垃圾收集器研究项目 Pauseless GC 的实现,旨在针对 JVM 上的内存收回实现低停顿的需求.该设计将与应用程序线程并发,通过交换 CPU 并发周期和空间以改善停顿时间,使得垃圾回收器执行线程能够在 Java 线程运行时进行堆压缩,并且标记和整理能够同时进行,因此避免了在大多数 JVM 垃圾收集器中所遇到的问题. Shenandoah GC 主要目标是 99.9% 的暂停小于 10ms,暂停与堆大小无关等.…
Java9开始引入的一个处理 HTTP 请求的的 HTTP Client API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在 java.net 包中找到这个 API. 为了方便测试,我这边启动了一个服务器,访问:http://localhost:8882/find即可返回一段json字符串. 下面来看一下HTTP Client的用法: // 创建一个客户端,因为其构造方法受保护,所以使用HttpClient.newHttpClient静态方法创建 HttpC…
1. java9 新特性 模块化的使用 减少内存的开销. 可简化各种类库和大型应用的开发和维护. 安全性,可维护性,提高性能. 在 module-info.java 文件中,我们可以用新的关键词module来声明一个模块,具体如下: module 模块名称 { } 钻石操作符:匿名内部类的使用中使用钻石操作符<>,省略类型 集合工厂:List.Set和Map集合中增加了静态工厂方法of实现不可变实例的创建 不可变体现在无法添加.修改和删除它们的元素. 不允许添加null元素对象 保证线程安全:…