大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 一文讀懂JDK10新特性

一文讀懂JDK10新特性

更新時間:2022-11-15 09:26:39 來源:動力節(jié)點 瀏覽1468次

1.局部變量類型推斷

2.不可修改的集合

(1)備份()

java.util.List、java.util.Map 和java.util.Set 每個都有一個新的靜態(tài)方法copyOf(Collection)。

它返回給定集合的不可修改的副本:

@Test(expected = UnsupportedOperationException.class)
public void whenModifyCopyOfList_thenThrowsException() {
    List<Integer> copyList = List.copyOf(someIntList);
    copyList.add(4);
}

任何修改此類集合的嘗試都將導致java.lang.UnsupportedOperationException運行時異常。

(2)toUnmodifiable*()

java.util.stream.Collectors 獲取額外的方法來將Stream 收集到不可修改的List、Map 或Set中:

@Test(expected = UnsupportedOperationException.class)
public void whenModifyToUnmodifiableList_thenThrowsException() {
    List<Integer> evenList = someIntList.stream()
      .filter(i -> i % 2 == 0)
      .collect(Collectors.toUnmodifiableList());
    evenList.add(4);
}

任何修改此類集合的嘗試都將導致java.lang.UnsupportedOperationException運行時異常。

3.可選*.orElseThrow()

java.util.Optional、java.util.OptionalDouble、java.util.OptionalInt和java.util.OptionalLong每個都有一個新方法orElseThrow(),它不接受任何參數,如果沒有值則拋出NoSuchElementException :

@Test
public void whenListContainsInteger_OrElseThrowReturnsInteger() {
    Integer firstEven = someIntList.stream()
      .filter(i -> i % 2 == 0)
      .findFirst()
      .orElseThrow();
    is(firstEven).equals(Integer.valueOf(2));
}

它是同義詞,現在是現有get()方法的首選替代方法。

4.性能改進

5.容器意識

JVM 現在知道在 Docker 容器中運行, 并將提取特定于容器的配置,而不是查詢操作系統(tǒng)本身——它適用于已分配給容器的 CPU 數量和總內存等數據。

但是,此支持僅適用于基于 Linux 的平臺。默認情況下啟用此新支持,可以在命令行中使用 JVM 選項將其禁用:

-XX:-UseContainerSupport

此外,此更改添加了一個 JVM 選項,該選項提供了指定 JVM 將使用的 CPU 數量的能力:

-XX:ActiveProcessorCount=count

此外,還添加了三個新的 JVM 選項,以允許 Docker 容器用戶對將用于 Java 堆的系統(tǒng)內存量進行更細粒度的控制:

-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage

6. 根證書

cacerts 密鑰庫最初是空的,旨在包含一組根證書,可用于建立對各種安全協議使用的證書鏈的信任。

因此,關鍵安全組件(如 TLS)在 OpenJDK 構建下默認不工作。

在 Java 10 中,Oracle 開源了 Oracle Java SE Root CA 程序中的根證書,以使 OpenJDK 構建對開發(fā)人員更具吸引力,并減少這些構建與 Oracle JDK 構建之間的差異。

7.棄用和刪除

(1)命令行選項和工具

工具javah 已從 Java 10 中刪除,Java 10 生成了實現本機方法所需的 C 頭文件和源文件——現在,可以使用javac -h 代替。

policytool 是用于策略文件創(chuàng)建和管理的基于 UI 的工具。現在已將其刪除。用戶可以使用簡單的文本編輯器來執(zhí)行此操作。

刪除了 java -Xprof選項。該選項用于分析正在運行的程序并將分析數據發(fā)送到標準輸出。用戶現在應該改用jmap 工具。

(2)蜜蜂

已棄用的 java.security.acl 包已標記為 forRemoval=true 并且可能會在 Java SE 的未來版本中被刪除。它已被java.security.Policy 和相關類取代。

同樣,java.security.{Certificate,Identity,IdentityScope,Signer} API 被標記為forRemoval=true。

8. 基于時間的版本控制

從 Java 10 開始,Oracle 已轉向基于時間的 Java 發(fā)布。這具有以下含義:

每六個月發(fā)布一個新的 Java。2018 年 3 月發(fā)布的是 JDK 10,2018 年 9 月發(fā)布的是 JDK 11,依此類推。這些稱為功能發(fā)布,預計至少包含一個或兩個重要功能

對功能發(fā)布的支持將僅持續(xù)六個月,即直到下一個功能發(fā)布

長期支持版本將標記為 LTS。對此類發(fā)布的支持將持續(xù)三年

Java 11 將是一個 LTS 版本

java -version 現在將包含 GA 日期,從而更容易識別版本的年齡:

$ java -version
openjdk version "10" 2018-03-20
OpenJDK Runtime Environment 18.3 (build 10+46)
OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)

以上就是關于“一文讀懂JDK10新特性”的介紹,大家如果想了解更多相關知識,可以關注一下本站的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 四虎影永久在线观看网址 | 元龙第三季免费观看 | 色www精品视频在线观看 | 精品中文字幕不卡在线视频 | 亚洲伊人色一综合网 | 99国产福利视频区 | 中国一级特黄特级毛片 | 一级香蕉免费毛片 | 欧美精品成人a多人在线观看 | 国产福利精品视频 | 亚洲欧美日韩中文无线码 | 亚洲精品国产字幕久久不卡 | 99成人精品 | 99久久精品免费看国产免费 | 精久久| 国产免费看 | 久久久久美女 | 欧美一级艳片爽快片 | 337p亚洲精品色噜噜狠狠 | 九九精品视频在线观看九九 | 国产精品久久久亚洲第一牛牛 | 久久香蕉影视 | 精品视频在线免费播放 | 日日拍夜夜嗷嗷叫国产 | 国产麻豆精品aⅴ免费观看 国产麻豆精品hdvideoss | 国产网红福利 | 国产高清自拍视频 | 精品国产91久久久久久久a | 干美女网站 | 97视频在线观看免费视频 | 欧美xxx4k精品hd | 深夜福利成人 | 日韩美女中文字幕 | 亚洲欧洲视频在线观看 | 色激情综合 | 欧美精品啪啪 | 全黄一级裸片视频在线观看 | 精品亚洲成a人7777在线观看 | 亚洲毛片在线观看 | 啪啪一级片 | 亚洲国产第一区二区香蕉 |