{site_name}

{site_name}

🌜 搜索

Java 10 是 Java 编程语言的一个版本,于 2018 年 3 月发布

编程 𝄐 0
java jframe类,java json转对象,java jsonobject,java jar,java jps命令,java jsonarray转成list
Java 10 是 Java 编程语言的一个版本,于 2018 年 3 月发布。Java 10 中引入了许多新特性,包括以下几项:

1. 局部变量类型推断(Local Variable Type Inference):现在可以使用 var 关键字来推断局部变量的类型,而无需显式声明它们的数据类型。

例如:


var a = 10; // 推断 a 的类型为 int
var b = "hello"; // 推断 b 的类型为 String


2. 应用程序类数据共享(Application Class-Data Sharing):通过将类元数据和字节码缓存到本地文件中,以便在启动时快速加载和共享,从而提高应用程序的启动时间和性能。

3. G1 垃圾收集器的并行完全垃圾回收(Parallel Full GC for G1):G1 垃圾收集器现在支持并行完全垃圾回收,从而提高垃圾收集的效率。

4. 线程局部握手(Thread-Local Handshakes):线程现在可以与 JVM 进行握手,以允许 JVM 在需要时挂起或恢复线程,从而更好地响应垃圾回收事件。

5. Unicode 10 支持:Java 10 支持最新的 Unicode 版本,其中包含符号和表情等新特性。

6. 其他改进:Java 10 还包括了一些其他的改进,例如对于Javadoc中HTML5元素的支持、基于时间的版本控制系统等。

例子:

1. 局部变量类型推断


var list = new ArrayList<String>(); // 推断 list 的类型为 ArrayList<String>
var stream = list.stream(); // 推断 stream 的类型为 Stream<String>


2. 应用程序类数据共享

Java 10 中新增了一个工具 jcmd,可以使用它来生成 CDS 归档文件并启动应用程序。例如:


# 生成 CDS 归档文件
$ java -XX:ArchiveClassesAtExit=hello.jsa Hello

# 启动应用程序并加载归档文件
$ java -XX:+UseAppCDS -XX:SharedArchiveFile=hello.jsa Hello


3. G1 垃圾收集器的并行完全垃圾回收

在 JVM 参数中使用 -XX:+ParallelGCThreads 来启用并行完全垃圾回收。例如:


$ java -XX:+UseG1GC -XX:+ParallelGCThreads=4 Hello


4. 线程局部握手

Java 10 引入了一个新的 JVM 参数 -XX:ThreadLocalHandshakes=true/false,默认情况下为 true。如果要禁用线程局部握手,可以将其设置为 false。