Java 各个版本的特性一览

简介: Java 各个版本的特性一览

个人认为下列列出来的都是版本较为突出的特性


Java  5

1.引入泛型功能(伪泛型)

2.增强循环,可以使用迭代循环,Iterator

3.支持自动装箱和自动拆箱

4.支持类型安全的枚举

5.支持可变参数

6.支持静态引入

7.支持元数据(注解)功能

8.引入Java Instrumentation


Java 6

1.支持脚本语言

2.引入JDBC 4.0 API

3.引入Java Compiler API

4.支持可插拔注解


Java 7

1. 支持了switch语句以String作为条件,至此已支持4中基本类型(byte, char , short ,int),2种对象类型(枚举,String)

2.优化增强了泛型对象类型推断

3.支持了在一个语句块中捕获多种异常,既一个catch,可以|多个异常

4.支持try-with-resources语法,自动为资源类进行关闭,而无需finally进行

5.引入Java NIO2开发包,支持了AIO

6.支持了数值的二进制表示方式,比如0b1010000, 以前只能8,10,16进制的表示

7.钻石型语法,省略类型参数的声明

8.支持了动态语言


Java 8

1.支持lambda表达式

2.支持集合的Stream流处理

3.支持Functional函数式接口

4.对各个类支持了很多对应的lambda增强方法

5.增强接口,支持了接口的默认和静态的具体方法

6.支持LocalDate等时间包,以改进原有Date

7.支持Optional来改进Null值的处理

8.优化了HashMap和ConcurrentHashMap


Java 9

1.支持Java平台级模块系统,既模块化

2.支持了JShell,既类似node.js, python一样的命令行工具,对待简单的东西,可以直接命令测试

3.改进Javadoc, 使得Javadoc可以搜索

4.支持了List.of(), Set.of(), Map.of()的方式初始化不可变集合,省略了大量代码,语法糖

5.改进的Stream API,比如ofNullable(),dropWhile(),takeWhile()等

6.增强接口,支持了私有接口具体方法,补充了Java8默认和静态方法的支持

7.把G1垃圾收集器作为默认的垃圾收集器,并标注CMS为过时收集器

8.引入了响应式流Reactive Streams API, 支持了响应式编程

9.支持了HTTP/2客户端


Java 10

1.支持了局部变量的类型推导,支持了局部变量的var声明

2.优化改进了G1垃圾回收器,采用并行化mark-sweep-compact算法


Java 11

1.简化了启动单个源代码文件的方法,使得小白命令式编译运行Java文件变成更加简单,java Helloworld.java 即可

2.增加支持了一个叫Epsilon的低开销垃圾收集器

3.增加支持了一个叫ZGC(Z Garbage Collector)的可伸缩低延迟垃圾收集器, 相比G1,停顿时间有了很大的改进,稳定在10ms以下

4.重写了HttpClient,提供了新的标准化HttpClient API, 以后不再需要引入apache包的HttpClient或是okhttp就能支持高性能的网络5.编程

6.增加了对TLS 1.3的支持

7.允许了飞行记录器进行商用下的使用

8.更好的支持了动态语言,在JVM层面增加了invokedynamic指令

9.支持了在lambda内部使用var声明局部变量


Java 12

1.引入了一个叫Shenandoah 低停顿的实验性垃圾收集器

2.改进了G1垃圾收集器

3.引入了实验性的预览版Switch语句优化,可以省略break语句,合并多个case

4.引入了JVM的常量API, 有助于一些分析的实现


Java 13

1.增强优化了ZGC垃圾收集器, 归还未使用的堆内存给操作系统

2.将Java12引入的预览版Switch语法提为正式版,使得Switch的使用更加的顺滑和流畅

3.支持了"""字符串块功能

相关文章
|
28天前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
57 2
|
29天前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
38 3
|
29天前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
32 2
|
1月前
|
存储 算法 Java
Java Set因其“无重复”特性在集合框架中独树一帜
【10月更文挑战第14天】Java Set因其“无重复”特性在集合框架中独树一帜。本文深入解析Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定的数据结构(哈希表、红黑树)确保元素唯一性,并提供最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的`hashCode()`与`equals()`方法。
29 3
|
1月前
|
安全 Java API
Java 17新特性让你的代码起飞!
【10月更文挑战第4天】自Java 8发布以来,Java语言经历了多次重大更新,每一次都引入了令人兴奋的新特性,极大地提升了开发效率和代码质量。本文将带你从Java 8一路走到Java 17,探索那些能让你的代码起飞的关键特性。
76 1
|
11天前
|
分布式计算 Java API
Java 8引入了流处理和函数式编程两大新特性
Java 8引入了流处理和函数式编程两大新特性。流处理提供了一种声明式的数据处理方式,使代码更简洁易读;函数式编程通过Lambda表达式和函数式接口,简化了代码书写,提高了灵活性。此外,Java 8还引入了Optional类、新的日期时间API等,进一步增强了编程能力。这些新特性使开发者能够编写更高效、更清晰的代码。
25 4
|
20天前
|
Java Linux Windows
如何查看已安装的 Java 版本
要查看已安装的 Java 版本,打开命令提示符或终端,输入 `java -version`,回车后即可显示当前系统中 Java 的版本信息。
|
20天前
|
Ubuntu Java Linux
如何检查 Java 版本是否兼容
要检查Java版本是否兼容,可在命令行输入“java -version”查看当前安装的Java版本,然后对比目标应用所需的Java版本,确保其满足要求。
|
25天前
|
存储 Java API
优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。
【10月更文挑战第19天】本文介绍了如何优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。内容包括Map的初始化、使用Stream API处理Map、利用merge方法、使用ComputeIfAbsent和ComputeIfPresent,以及Map的默认方法。这些技巧不仅提高了代码的可读性和维护性,还提升了开发效率。
50 3
|
25天前
|
存储 安全 Java
Java Map新玩法:深入探讨HashMap和TreeMap的高级特性
【10月更文挑战第19天】Java Map新玩法:深入探讨HashMap和TreeMap的高级特性,包括初始容量与加载因子的优化、高效的遍历方法、线程安全性处理以及TreeMap的自然排序、自定义排序、范围查询等功能,助你提升代码性能与灵活性。
24 2