2020-12-19

JDK1.5新特性

1、自动装箱与拆箱:原始类型与对应的包装类不用显式转换

ArrayList list=new ArrayList()----------->ArrayList<Integer>list=new ArrayList<Integer>();

2、静态导入:通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。

Math.sqrt();----------->sqrt();

3、For-Each循环:For-Each循环得加入简化了集合的遍历。

for(i=0;i<a.length;i++){......}----------->for(int i:a){......}

3、泛型:可以指定集合的元素类型。

4、变长参数:有任意个参数,看作数组。

JDK1.6新特性

1、使用Compiler API

2、轻量级Http Server API

JDK1.7新特性

1、switch中可以使用字符串

2、对集合类的语言支持:Java将包含对创建集合类的第一类语言支持。这意味着集合类的创建可以像Ruby和Perl那样了(下面的这些集合是不可变的)。

JDK1.8新特性

1、HashMap中的红黑树:HashMap中链长度大于8时采取红黑树的结构存储。

	红黑树,除了添加的情况外,其他时候效率高于链表结构。

2、ConcurrentHashMap:底层采用node数组+链表+红黑树的存储结构,通过CAS算法(乐观锁机制)+synchronized来保证并发安全的实现。

put()方法过程:
1) 根据key的hash值数组中相应位置的Node还未初始化,则通过CAS插入相应的数据;
2) 如果相应位置的Node不为空,且当前该节点不处于移动状态,则对该节点加synchronized锁,如果该节点的hash不小于0,则遍历链表更新节点或插入新节点;
3) 如果该节点是TreeBin类型的节点,说明是红黑树结构,则通过putTreeVal方法往红黑树中插入节点

3、接口中可以有默认方法与静态方法,也就是接口中可以有实现方法。

	默认方法中的default不可省略,子类重写时候,必须去掉default修饰符

4、Lambda表达式:lambda表达式的使用简化了代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值