摘要:本文是個(gè)人在企業(yè)內(nèi)部分享使用的簡(jiǎn)要大綱,列舉了的重要更新,文章的結(jié)構(gòu)較簡(jiǎn)單,也不規(guī)范,鑒于近期寫(xiě)若干文章時(shí)總會(huì)忘記一些新特性所處的版本,特將此大綱流留用。
本文是個(gè)人在企業(yè)內(nèi)部分享使用的簡(jiǎn)要大綱,列舉了JAVA9-12的重要更新,文章的結(jié)構(gòu)較簡(jiǎn)單,也不規(guī)范,鑒于近期寫(xiě)若干文章時(shí)總會(huì)忘記一些新特性所處的版本,特將此大綱流copy留用。
一 JAVA9 新特性
1.Java Platform Module System/ Modular Java Application Packaging模塊化系統(tǒng)及類(lèi)加載器分級(jí)
2.jshell
3.Multi-Release JAR Files 多版本的jar包
4.Jlink 工具
5.Segmented Code Cache 代碼片段緩存
6.Dynamic Linking of Language-Defined Object Models 動(dòng)態(tài)鏈接語(yǔ)言定義模型
7.Unified JVM Logging 統(tǒng)一JVM日志
8.將G1作為默認(rèn)垃圾收集器,并deprecated CMS.
9.進(jìn)程API
10.變量句柄
11.字符串內(nèi)部實(shí)現(xiàn)優(yōu)化(字符數(shù)組變字節(jié)數(shù)組+編碼方式)
12.發(fā)布訂閱框架
13.集合工廠方法
14.自旋暗示
15.對(duì)象序列化數(shù)據(jù)過(guò)濾
16."棧旅行者"
17.Milling Project Coin(鬼知道該怎么翻譯).
Allow @SafeVargs on private instance methods. //允許在私有實(shí)例方法上標(biāo)注@SafeVargs注解
Allow effectively final variables to be used as resources in the try-with-resourcesstatement. //try-with-resource 語(yǔ)法支持實(shí)際final的變量
Allow the diamond with anonymous classes if the argument type of the inferred type is denotable.//允許對(duì)可推薦出類(lèi)型的匿名內(nèi)部類(lèi)使用鉆石符號(hào).
Complete the removal, begun in Java SE 8, of the underscore from the set of legal identifier names.//移除java8中已經(jīng)開(kāi)始的,以下劃線作為完整標(biāo)識(shí)符名稱(chēng)
Add support for private interface methods.//接口中可定義私有方法.
18.擴(kuò)大的unicode集
19.孵化官方http client.
二 JAVA10
1.局部變量類(lèi)型推斷
2.統(tǒng)一定義的 GC接口.
3.g1垃圾收集器的并行full gc
4.應(yīng)用類(lèi)數(shù)據(jù)共享
5.thread local 握手
6.擴(kuò)展unicode語(yǔ)言標(biāo)簽.
三. JAVA11
1.unicode10支持
2.標(biāo)準(zhǔn)化java9中孵化的http客戶端
demo:同步式編程
public void get(String uri) throws Exception {
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(uri)) .build(); HttpResponseresponse = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }
demo:響應(yīng)式編程
public CompletableFuture
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(uri)) .build(); return client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) .thenApply(HttpResponse::body); }
demo:響應(yīng)式編程-并發(fā)
public void testConcurrentRequests(){
HttpClient client = HttpClient.newHttpClient(); Listurls = List.of("http://www.baidu.com","http://www.alibaba.com/","http://www.tencent.com"); List requests = urls.stream() .map(url -> HttpRequest.newBuilder(URI.create(url))) .map(reqBuilder -> reqBuilder.build()) .collect(Collectors.toList()); List >> futures = requests.stream() .map(request -> client.sendAsync(request, HttpResponse.BodyHandlers.ofString())) .collect(Collectors.toList()); futures.stream() .forEach(e -> e.whenComplete((resp,err) -> { if(err != null){ err.printStackTrace(); }else{ System.out.println(resp.body()); System.out.println(resp.statusCode()); } })); CompletableFuture.allOf(futures .toArray(CompletableFuture>[]::new)) .join(); }
注:以上代碼是分享時(shí)從網(wǎng)上轉(zhuǎn)來(lái)的,因?yàn)榇宋氖菑膬?nèi)部wiki粘過(guò)來(lái),出處已忘。接下來(lái)打算發(fā)一篇CompletableFuture有關(guān)的文章,最近對(duì)響應(yīng)式編程的興趣更加深刻了。
3.Collection.toArray(IntFunction) Default 方法
4.編譯器線程的懶分配
5.體驗(yàn)版zgc大殺器(缺少類(lèi)和元數(shù)據(jù)卸載)
6.Epsilon GC no-op 體驗(yàn)版
7.少代價(jià)的堆分析工具jvmti
8.nests, an access-control context ,省去編譯器插入accessibility-broadening bridge methods
9.一些屬性變事實(shí)的只讀.java.home, user.home, user.dir, user.name等
10.Reference類(lèi)不再支持克隆
11.使用classpath進(jìn)行編譯運(yùn)行時(shí),默認(rèn)解析的模塊策略變更:root模塊集在此版本變更為所有可見(jiàn)的導(dǎo)出api的系統(tǒng)模塊,唯一可見(jiàn)的改變是java.se模塊不在默認(rèn)解析.
12.SelectableChannel可以在select操作正在進(jìn)行中注冊(cè).
13.DatagramChannel.send Throws AlreadyConnectedException Instead of IllegalArgumentException
14.為并發(fā)gc提供新的性能記數(shù)器
15.g1支持自適應(yīng)的引用處理時(shí)的線程數(shù).所有g(shù)c支持stw階段的并行自適應(yīng).
16.模塊路徑下支持類(lèi)數(shù)據(jù)共享cds.
四.JAVA12
1.unicode11支持
2.jvm常量api
3.簡(jiǎn)寫(xiě)的數(shù)字格式:1k
4.zgc支持并發(fā)類(lèi)數(shù)據(jù)卸載
5.支持交替在內(nèi)存設(shè)備上分配老年代,支持相應(yīng)功能的設(shè)備如"非易變-雙列直插式內(nèi)存模型"(NV-DIMM).
6.switch case支持語(yǔ)句的同時(shí)支持表達(dá)式.case ... ->
7.更好的支持http重定向(HttpURLConnection)
8.g1可能在并發(fā)標(biāo)記周期交回內(nèi)存.
9可終止的g1混合gc
10.讓g1在空閑時(shí)自動(dòng)交回已提交但未使用的內(nèi)存.
11.Shenandoah 低停頓gc體驗(yàn)版.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74962.html
摘要:內(nèi)部類(lèi),用于對(duì)和異常進(jìn)行包裝,從而保證對(duì)進(jìn)行只有一次成功。是取消異常,轉(zhuǎn)換后拋出。判斷是否使用的線程池,在中持有該線程池的引用。 前言 近期作者對(duì)響應(yīng)式編程越發(fā)感興趣,在內(nèi)部分享JAVA9-12新特性過(guò)程中,有兩處特性讓作者深感興趣:1.JAVA9中的JEP266對(duì)并發(fā)編程工具的更新,包含發(fā)布訂閱框架Flow和CompletableFuture加強(qiáng),其中發(fā)布訂閱框架以java.base...
摘要:拆解虛擬機(jī)的基本步聚如下首先,要等待到自身成為唯一一個(gè)正在運(yùn)行的非守護(hù)線程時(shí),在整個(gè)等待過(guò)程中,虛擬機(jī)仍舊是可工作的。將相應(yīng)的事件發(fā)送給,禁用,并終止信號(hào)線程。 本文簡(jiǎn)單介紹HotSpot虛擬機(jī)運(yùn)行時(shí)子系統(tǒng),內(nèi)容來(lái)自不同的版本,因此可能會(huì)與最新版本之間(當(dāng)前為JDK12)存在一些誤差。 1.命令行參數(shù)處理HotSpot虛擬機(jī)中有大量的可影響性能的命令行屬性,可根據(jù)他們的消費(fèi)者進(jìn)行簡(jiǎn)...
摘要:借助它來(lái)統(tǒng)計(jì)我們程序的執(zhí)行時(shí)間,帶給非常多的方便和優(yōu)雅。且,且,且設(shè)置為了當(dāng)前時(shí)間。 相關(guān)閱讀 【小家java】java5新特性(簡(jiǎn)述十大新特性) 重要一躍【小家java】java6新特性(簡(jiǎn)述十大新特性) 雞肋升級(jí)【小家java】java7新特性(簡(jiǎn)述八大新特性) 不溫不火【小家java】java8新特性(簡(jiǎn)述十大新特性) 飽受贊譽(yù)【小家java】java9新特性(簡(jiǎn)述十大新特性) ...
摘要:經(jīng)歷月份開(kāi)放的簡(jiǎn)歷,收到了蠻多詢(xún)問(wèn)和面試,算是招人旺季,需要跳槽的小伙伴抓住機(jī)會(huì)?,F(xiàn)在是面試了家公司左右,有些高頻問(wèn)題會(huì)標(biāo)記次數(shù)總次數(shù),可供大家參考。最后祝大家面試順利,拿到心儀的,寫(xiě)錯(cuò)的地方請(qǐng)不吝賜教,謝謝。 經(jīng)歷 7月份開(kāi)放的簡(jiǎn)歷,收到了蠻多詢(xún)問(wèn)和面試,算是招人旺季,需要跳槽的小伙伴抓住機(jī)會(huì)。一開(kāi)始廣泛看面試題,沒(méi)抓住重點(diǎn)復(fù)習(xí),有很多平時(shí)也沒(méi)怎么用到,導(dǎo)致一開(kāi)始面試的時(shí)候,問(wèn)的問(wèn)題...
閱讀 789·2021-11-09 09:47
閱讀 1581·2019-08-30 15:44
閱讀 1149·2019-08-26 13:46
閱讀 2114·2019-08-26 13:41
閱讀 1279·2019-08-26 13:32
閱讀 3783·2019-08-26 10:35
閱讀 3531·2019-08-23 17:16
閱讀 462·2019-08-23 17:07