JAVA新特性总结(5、6、7、8、9、10、11)

JAVA 5

1、泛型:类和方法声明上支持泛型

a、编译时的泛型擦除:转换为一个对应的原生类型,泛型类型为第一个限定泛型类型或没有限定时为Object;

b、在变参方法调用中,若没有明确指定泛型类型(instance.<T>method(...)),变参也不能明确确定一个类型时,将自动向上转型为共同的父类,若共同父类有多个,则报错;

c、编译时期强制类型转换:在必要时进行强制类型转换;

2、for...in语句

3、变参

4、枚举(线程安全的单列模式)

5、基础类型的自动拆箱装箱(byte、shot、int、long、float、double、char、boolean)

6、java.util.current包下新增的线程模型和并发库

7、注解

8、静态导入

 

JAVA 6

1、集合增强

a、增加了新的类和接口,以增强双向集合操作;

b、新增数组操作方法:Arrays.copyOf、Arrays.copyOfRange

2、脚本引擎(JavaScript)

3、JDBC4.0规范

 

JAVA 7

1、数字型整型字面量可直接用二进制表示,0b或0B开头

2、数字型整型字面量可用_分割,提高可读性,_不可出现在开头或末尾

3、try-with-resources:实现了java.lang.AutoCloseable接口的类实例,可直接在try中声明,省略finally的close操作

4、catch语句可同时捕获多个异常,用|分割

5、swith支持String

6、泛型实例声明自动类型推断

 

JAVA 8

一、语言特性

1、lambda表达式:由逗号分割的参数列表,->符号以及语句块组成。

a、参数列表可加类型限定或由jvm推导类型;

b、可以有返回值,若语句块只有一条语句,则可以不显示写return语句,该语句执行结果则为返回值;

c、lambda表达式可使用类成员变量和局部变量;

d、函数式接口(只有一个函数的接口)和lambda的自动转换;

e、函数式接口可以用@FunctionalInterface注解标记,默认方法和静态方法不会破坏函数式接口;

2、接口提供了默认方法和静态方法的支持

3、方法引用

a、构造器引用:Class<T>::new

b、静态方法引用:Class<T>::static_method

c、类成员方法引用:Class<T>::method

d、实例对象的成员方法引用:instance::method

4、重复注解:允许在同一个地方多次使用同一个注解

5、更好的类型推断

6、更广泛的注解使用场景

二、JAVA编译器新特性

1、参数名称:通过添加-parameters可以开启参数名称编译到字节码中;

三、JAVA官方库新特性

1、Optional:空值检查处理

isPresent()方法:如果Optional实例持有一个非空值,则方法返回true,否则返回false;

orElseGet()方法,Optional实例持有null,则可以接受一个lambda表达式生成的默认值;

map()方法可以将现有的Opetional实例的值转换成新的值;

orElse()方法与orElseGet()方法类似,但是在持有null的时候返回传入的默认值。

2、Streams:简化集合操作

stream之上的操作可分为中间操作和晚期操作

中间操作会创建一个新的stream,并将符合条件或转换后的元素放入该stream中;

晚期操作将立刻遍历stream并得出结果,晚期操作后stream处理完毕,不能再使用;

stream支持并行处理、统计等复杂操作;

3、Date/Time API

4、Nashorn JavaScript引擎

5、Base 64编解码原生API支持

6、并行数组操作:Arrays.parallelXxx

7、并发性的丰富扩展

ConcurrentHashMap、ConcurrentForkJoinPool新增接口方法

StampedLock

atomic新增工具类

JVM新特性:使用Metaspace代替PermGen Space

 

 

参考:

https://my.oschina.net/rechardchensir/blog/1931991

https://winterbe.com/posts/2014/03/16/java-8-tutorial/

https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/

https://www.baeldung.com/java-8-streams

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值