jdk1.8与1.6的差异和新特性
⼀:引⾔
  最近⾯试,有被问道jdk1.6和1.8的区别,不知道怎么回答,这⾥简单总结下,期待下次回答的好⼀点。
⼆、差异
1.ArrayList使⽤默认的构造⽅法构造实例,jdk1.6默认初始化⼤⼩为10,jdk1.8为0,第⼀次放⼊值才初始化,即懒加载(细节可查看源码)。
2.hashMap底层,jdk1.6为数组加+链表,jdk1.8为数组加+链表,但当链表超过8时会⾃动转转换成红⿊树。jdk怎么使用
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包下。