java jdk1.8新特性
的有关信息介绍如下:jdk1.8相较于1.7以前有5方面的优化。
1、速度更快
2、代码更少(增加了新的语法Lambda表达式)
3、强大Stream API
4、便于并行
5、最大化减少空指针异常 OPtional
Lambda表达式
可以直接参考:java jdk1.8新特性Lambda表达式
2java jdk1.8新特性Lambda表达式
Stream API
可以直接参考:java jdk1.8新特性Stream API
2java jdk1.8新特性Stream API
jdk1.8 日期处理
1、原始jdk1.0引入 java.lang.util.Date
2、jdk1.1后引入Calendar
3、引入java.time API且Date新增了toInstant()
3.1 主要是借鉴了joda-Time
3.2 中包含本地日期LocalDate、本地时间LocalTime、本地日期时间LoaclDateTime、时区ZonedDateTime、持续时间Duration等类。
4、测试日期转换并加减:
4.1 dtf是日期格式格式化实体对象
4.2 batchDate日期字符串
4.3plusDays对日期加一天
4.4format将日期转为字符串
import java.time.LocalDate;import java.time.format.DateTimeFormatter;
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");
String batchDateStr = LocalDate.parse(batchDate, dtf).plusDays(1).format(dtf);
LocalDateTime lt = LocalDateTime.now();
5、其它详细内容请咨询或者参考光放文档
ForkJoin 框架
在jdk1.7之前就已经存在,但是没有大规模应用
jdk HashMap底层实现
1、原有是哈希+数组 经过调整改为 哈希+数组+红黑二叉树使得除添加之外的行能都提高了,特别是查询。
2、线程安全的concurrentHashMap底层也进行了优化
jdk8新特性:可重复注解
jdk8新特性:类型注解
https://blog.csdn.net/lu930124/article/details/77595585
4、Java8中的并行流和顺序流
4.1顺序流
/**
* Java8的顺序流
*/
@Test
publicvoidtest3() {
Instant start = Instant.now();// java8中新时间日期API
LongStream.rangeClosed(0, 10000000000L)
.sequential()// 顺序流
.reduce(0, Long::sum);
Instant end = Instant.now();
// 5780
System.out.println("耗费时间为:"+ Duration.between(start, end).toMillis());// java8中新时间日期API
}
4.2并行流
/**
* Java8的并行流
*/
@Test
publicvoidtest4() {
Instant start = Instant.now();// java8中新时间日期API
LongStream.rangeClosed(0, 10000000000L)
.parallel()// 并行流
.reduce(0, Long::sum);
Instant end = Instant.now();
// 2392
System.out.println("耗费时间为:"+ Duration.between(start, end).toMillis());// java8中新时间日期API
}