jdk1.8相較于1.7以前有5方面的優化。
1、速度更快
2、代碼更少(增添了新的語法Lambda表達式)
3、壯大Stream API
4、便于并行
5、最大化削減空指針異常 OPtional
Lambda表達式
可以直接參考:java jdk1.8新特征Lambda表達式
2新特征表達式
Stream API
可以直接參考:java jdk1.8新特征Stream API
2新特征
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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!