一:JAVA8新特性简介
1:速度更快
首先速度很快,它是体现在很多的方面,比如说它对底层的数据结构做了一定的更新的改动,对于垃圾回收机制
也就是内存结构也做了改变。改变的例子如下:
⑴底层机构最核心的HashMap做了改动,原本HashMap是数组加上链表结构,现在JAVA8在原本的
基础上添加了红黑树结构,就是数组+链表+红黑树,使得HashMap的速度得到了很大的提高。
⑵对底层内存结构的更新
java8移除了PermGen(永久区),取而代之的是MetaSpace,叫做元空间。意味着不会再有 java.lang.OutOfMemoryError: PermGen问题,也不再需要你进行调优及监控内存空间的使用,
但是新特性不能消除类和类加载器导致的内存泄漏。你需要使用不同的方法以及遵守新的命名约定来追踪这些问题。
默认情况下,类元数据只受可用的本地内存限制(容量取决于是32位或是64位操作系统的可用虚拟内存大小)。
新参数(MaxMetaspaceSize)用于限制本地内存分配给类元数据的大小。如果没有指定这个参数,元空间会在运行
时根据需要动态调整。
2:代码更少(增加了新的语法Lambda表达式)
3:强大的Stream API
4:便于并行
5:最大化减少空指针异常Optional
二:Lambda表达式的简单使用
1:为什么要使用Lambda表达式
Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样传递),
可以写出更简洁,更灵活的代码。作为一种更紧凑的代码风格,使java的语言表达能力得到提升。
2:java8之前匿名内部类的优化代码例子
效果:(通过上面可以发现我们使用匿名内部类的方式已经对方法很简化了)
3:使用java8中Lambda表达式的方法优化上面的代码
⑴简单优化
效果:
⑵超级优化方案
效果: