Java8新特性包含的主要内容

1.Lambda 表达式
2.函数式接口
3.方法引用与构造器引用
4.StreamAPI
5.接口中的默认方法与静态方法
6.新时间日期API
7.其他新特性

新特性简介:

  • 速度更快
  • 代码更少(lambda 表达式)
  • 强大的StreamAPI
  • 方便并行
  • 最大程度减少空指针异常

两个基础改变:

HashMap的变化:

java7 :数组+链表
java8新特性的学习--------简介
存在问题:存在极端情况时,会使效率变得很低

java8: 数组+链表+红黑树
java8新特性的学习--------简介
当一个索引处大于8时,会转换成红黑树

除了插入操作变慢外(找合适位置才插入),其他各方面均增强。
(查找时可通过比较是否比根节点大而考虑查找的方向)

内存结构的变化

Java7中
java8新特性的学习--------简介
1.方法区是堆中永久区的一部分
2.永久区也会被垃圾回收机制回收,不过条件相对苛刻。

java8中:
java8新特性的学习--------简介
1.永久区被删除了
2.方法区从永久区里剥离了出来,成为了元空间
3.方法区用的是物理内存
4.PremGenSize与MaxPremGenSize被删除,用Meta Space与 MaxMetaSpadceSize取代
5.理论上,默认物理内存有多大,元空间就有多大

相关文章: