jdk1.8与1.6的差异和新特性

一:引言

  最近面试,有被问道jdk1.6和1.8的区别,不知道怎么回答,这里简单总结下,期待下次回答的好一点。

二、差异

1.ArrayList使用默认的构造方法构造实例,jdk1.6默认初始化大小为10,jdk1.8为0,第一次放入值才初始化,即懒加载(细节可查看源码)。

2.hashMap底层,jdk1.6为数组加+链表,jdk1.8为数组加+链表,但当链表超过8时会自动转转换成红黑树。

3.静态代码块加载方式不同,jdk1.6先初始化static在执行main方法,jdk1.8为懒加载,先执行main方法,使用到了static在进行初始化。

4.jdk1.8版本switch支持String变量,jdk1.6及之前版本只支持int同类型变量,即byte,short,int,char四个类型。

三、新特性

1.接口引入default关键字,使用default关键字修饰方法可以定义具体的实现,接口可以有静态方法。

2.引入lambda表达式,可进行函数式编程。

3.函数式接口,通过@FunctionalInterface注解,可以使用函数作为参数。

4.DateAPI进行了更新。1.8之前JDK自带的日期处理类非常不方便,1.8改观很多,比如日期时间的创建、比较、调整、格式化、时间间隔等。这些类都在java.time包下。

posted @ 2022-01-20 17:16  转转龙  阅读(2772)  评论(0编辑  收藏  举报