jdk1.8相较于1.7以前有5方面的优化。
1、速度更快
2、代码更少(增添了新的语法Lambda表达式)
3、壮大Stream API
4、便于并行
5、最大化削减空指针异常 OPtional
Lambda表达式
可以直接参考:java jdk1.8新特征Lambda表达式
Stream API
可以直接参考:java 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.3 plusDays对日期加一天
4.4 format将日期转为字符串
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
public void test3() {
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
public void test4() {
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
}
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!