Java8 新特性概述(60%)
来源:互联网 发布:淘宝产品市场调查表 编辑:程序博客网 时间:2024/06/01 18:27
摘要: Java8在2014年已经发布,现在已经逐渐被广大开发者所认同,越来越多的框架选用,越来越多的公司选择Java8,经过一段时间的学习,发现Java的一些改动值得学习。
特性简介
- 速度更快
Java8优化了垃圾回收机制,对底层的内存结构进行了升级,永久区被移除,用元空间代替(直接使用物理内存,而不是分配内存,OOM异常减少),MaxPremGenSize使用MaxMetaspaceSize。Java8对底层的数据结构了进行了改善,例如HashMap以前的HashMap是数组加链表结构,现在增加了红黑树的结构,使得除了添加数据的操作,其他性能都有改善,在ConcurrentHashMap中使用了CAS算法而弃用了锁分段机制。 - 代码更少
使用新的语法,Lambda表达式用更少的代码带来相同的效果。 - 便于并行
提供了现成的方法来并行化处理。 - 减少异常
优化内存,减少OOM;提供了Optinal接口来处理空对象。
Lambda表达式
Lambda是一个匿名函数,我们可以吧Lamdba表达式理解为一段可以传递的代码。使用Lambda可以写出更简洁、灵活的代码。
例如,我们要比较两个整数的大小,如果使用比较器的话,代码可以这么写:
public void testComparator(){ Comparator<Integer> comparator = new Comparator<Integer>() { @Override public int compare(Integer x, Integer y) { return Integer.compare(x, y); } }; }
当使用了Lambda表达式以后,可以这样:
public void testComparatorLam(){ Comparator<Integer> comparator = (x, y) -> Integer.compare(x, y); }
函数式接口
函数式接口其实本质上还是一个接口,但是它是一种特殊的接口:SAM类型的接口(Single Abstract Method)。Java8在使用Lambda时,需要函数式接口的声明。如果每次使用Lambda表达式都需要自己编写函数式接口,确实有点麻烦。因此就有了四大函数式接口:Consumer, Supplier, Funciton, Predicate
方法引用于构造器引用
Stream API
Steam不同于之前java.io.*包中的数据流,它是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的的聚合操作。
使用stream API可以使复杂的业务逻辑一行代码搞定:
public void test(){ list.stream() .filter((e) - > stu.getScore > 60) .limit(3) .forEach(System.out:println);}
接口中的默认方法与静态方法
新时间日期API
阅读全文
0 0
- Java8 新特性概述(60%)
- Java8新特性概述
- java8新特性概述
- java8的新特性(概述)转载(待续)
- java8 新特性
- java8新特性 ---译
- Java8新特性教程
- Java8新特性学习
- JAVA8新特性
- Java8新特性详解
- JAVA8的新特性
- java8 新特性
- java8新特性
- java8 新特性
- JAVA8新特性一览
- Java8 新特性学习
- Java8新特性 Stream
- java8新特性
- Flex的mxml组件中进行图形绘制
- 写一个用矩形法求定积分的通用函数,分别求: ∫(0,1) sinxdx,∫(0,1)cosxdx,∫(0,1)e^xdx 。
- 希尔排序
- 网页滚动条滚动事件
- CSS之overflow
- Java8 新特性概述(60%)
- 交换链表中两个节点
- 服务器Servlet数据传到jsp页面
- 51Nod 1201 整数划分
- datatables 多条件搜索
- Thymeleaf系列三 调用对象的成员变量值、Map值、List值、属性的方法 、ctx对象、param、session和application
- LeetCode (Path Sum)
- Flex 阻止列表类型组件改变所选项
- 项目案例:新闻发布系统