JDK8的新特性
- Lambda表达式和函数式接口
- 更强的Stream API
- 接口的增强,接口可以包含静态方法,默认方法
- Optional
- 新的时间和日期API
- HashMap底层变为由红黑树实现,JVM中的元空间被永久代取代。
类加载器
Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象,而且加载某个类的class文件时,Java虚拟机采用的是双薪委派模式即把请求交给父类处理。
双亲委派机制
在进行类加载的时候,首先交于最终的父类也就是启动类加载器取加载,若存在,则成功返回,如果不存在,则交由其子类进行加载。
双亲委派机制一个比较大的好处就是可以避免类的重复加载,如果父类已经加载,则子类就没有必要加载;而且还保证了加载类的安全,Java核心api定义的类型不会被随意替换,比如假设通过网络传递来一个Integer类,在类加载的时候现有启动类进行加载,而启动类加载器在核心JavaAPI就能找到Integer类,发现该类已经被加载,并不会重新加载网络传递过来的Integer类。