日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java改变变量编码方式_Java 10将如何改变您的编码方式

發(fā)布時(shí)間:2023/12/3 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java改变变量编码方式_Java 10将如何改变您的编码方式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java改變變量編碼方式

突出顯示Java 10中新的Java局部變量類(lèi)型推斷功能

早在2016年,Java社區(qū)就掀起了新的JDK增強(qiáng)提案(JEP): JEP 286 。 現(xiàn)在,兩年后,局部變量類(lèi)型推斷可以說(shuō)是Java 10中最值得注意的功能。這是Java語(yǔ)言開(kāi)發(fā)人員為簡(jiǎn)化Java應(yīng)用程序編寫(xiě)所采取的又一個(gè)步驟。

在下面的文章中,我們將解釋所有這些含義以及它將如何影響您的代碼。

分解局部變量類(lèi)型推斷

這項(xiàng)新功能將為Java添加一些語(yǔ)法功能–簡(jiǎn)化它并改善開(kāi)發(fā)人員的體驗(yàn)。 新語(yǔ)法將減少與編寫(xiě)Java相關(guān)的冗長(zhǎng)性,同時(shí)保持對(duì)靜態(tài)類(lèi)型安全性的承諾。

換句話說(shuō),您無(wú)需指定關(guān)聯(lián)的類(lèi)型就可以聲明變量。 聲明如:

List <String> list = new ArrayList <String>();
Stream <String> stream = getStream();

將被以下新的簡(jiǎn)化語(yǔ)法取代:

var list = new ArrayList <String>();
var stream = getStream();

如您所見(jiàn),Local Variable Type Inference將引入' var '關(guān)鍵字的使用,而不是要求明確說(shuō)明變量的類(lèi)型。

眾所周知,Java有點(diǎn)冗長(zhǎng),在理解函數(shù)編寫(xiě)時(shí)了解您或其他開(kāi)發(fā)人員的想法時(shí)可能會(huì)很不錯(cuò)。 但是,對(duì)于那些認(rèn)為用Java開(kāi)發(fā)軟件過(guò)于乏味的人來(lái)說(shuō),此功能標(biāo)志著巨大的變化。

盡管類(lèi)型推斷不是Java中的新概念,但它是局部變量的新概念。

它是在Java 7中(作為Project Coin的一部分)通過(guò)菱形運(yùn)算符(<>)引入的,該運(yùn)算符允許在沒(méi)有類(lèi)型綁定ArrayList <>的情況下初始化列表,而在Java 8中是使用Lambda Formals引入的。 例如,使用菱形運(yùn)算符可以編寫(xiě)以下代碼:

List <String> list =新的LinkedList <String>();

現(xiàn)在,Oracle團(tuán)隊(duì)正在將其進(jìn)一步發(fā)展。

社區(qū)回應(yīng)

實(shí)際上,在JEP 286成為JEP之前……Oracle進(jìn)行了一項(xiàng)調(diào)查 ,以更好地了解Java社區(qū)對(duì)該建議的看法。 在大多數(shù)情況下,調(diào)查的重點(diǎn)是對(duì)提案的總體感覺(jué)以及社區(qū)認(rèn)為應(yīng)如何實(shí)施提案。 在回答的2,453個(gè)開(kāi)發(fā)人員中,結(jié)果大部分是積極的:

調(diào)查問(wèn)題:您如何看待提議的局部變量類(lèi)型推斷功能?

該調(diào)查的第二部分重點(diǎn)介紹了潛在的語(yǔ)法選擇,建議根據(jù)其他語(yǔ)言(如C#,Scala,Swift,C ++)的相似用法或使用“ let ”來(lái)選擇5個(gè)選項(xiàng)。

大多數(shù)用戶(hù)投票贊成var / val選項(xiàng):

可能的語(yǔ)法選項(xiàng)

最后,團(tuán)隊(duì)決定選擇第二受歡迎的選擇,僅var 。

Java社區(qū)的大多數(shù)成員似乎都贊成這種新選擇,其中許多人要求Oracle“與時(shí)俱進(jìn)”。 少數(shù)反對(duì)該功能的開(kāi)發(fā)人員聲稱(chēng),對(duì)于那些開(kāi)始使用Java邁出第一步的人可能會(huì)感到困難,或者指出現(xiàn)有語(yǔ)法是“冗長(zhǎng)和易讀性的正確組合”。

當(dāng)然,在JEP 286摘要頁(yè)面上,您可以找到添加新功能的以下理由:

“ Java幾乎是唯一不包含局部變量類(lèi)型推斷的流行的靜態(tài)類(lèi)型語(yǔ)言。 在這一點(diǎn)上,這不再是一個(gè)有爭(zhēng)議的功能”

這將如何影響您的代碼?

一旦我們從系統(tǒng)中獲得了對(duì)新功能的全部興奮,通常我們要問(wèn)自己的第一個(gè)問(wèn)題是:這將如何影響我的代碼? 在功能摘要中,“ Java所需的樣板編碼程度”是主要?jiǎng)訖C(jī),因此我們可以期待將來(lái)省略清單類(lèi)型聲明。

更具體地說(shuō),治療將限于:

  • 帶有初始化器的局部變量
  • 增強(qiáng)的for循環(huán)中的索引
  • 在傳統(tǒng)的for循環(huán)中聲明的本地人

Oracle的Java團(tuán)隊(duì)聲明它將不適用于:

  • 方法參數(shù)
  • 構(gòu)造函數(shù)參數(shù)
  • 方法返回類(lèi)型
  • 領(lǐng)域
  • 捕獲形式(或任何其他類(lèi)型的變量聲明)

由于Java承諾支持Java的早期版本,因此我們可以假定它不會(huì)破壞向后兼容性。

加:GC改進(jìn)和其他客房整理

JDK 10中有2個(gè)JEP專(zhuān)注于改進(jìn)當(dāng)前的垃圾回收(GC)元素。 第一個(gè)垃圾收集器接口(JEP 304)將引入一個(gè)干凈的垃圾收集器接口,以幫助改善不同垃圾收集器的源代碼隔離。

在當(dāng)前的Java版本中,HotSpot源中散布著一些零散的GC源文件。 在實(shí)現(xiàn)新的垃圾收集器時(shí),這成為一個(gè)問(wèn)題,因?yàn)殚_(kāi)發(fā)人員必須知道在哪里尋找這些源文件。 該JEP的主要目標(biāo)之一是為HotSpot內(nèi)部GC代碼引入更好的模塊化,具有更簡(jiǎn)潔的GC接口,并使其更易于實(shí)現(xiàn)新的收集器。

計(jì)劃用于Java 10的第二個(gè)JEP是用于G1的并行完全GC(JEP 307),它致力于通過(guò)使完全GC并行化來(lái)提高G1最壞情況的延遲。 G1在Java 9中成為默認(rèn)的GC,此JEP的目標(biāo)也是使G1并行化。

在Java 10計(jì)劃的其他功能中,我們可以期望:

  • 線程本地握手(JEP 312)–這將引入一種在線程上執(zhí)行回調(diào)的新方法,因此停止單個(gè)線程(不僅是所有線程或不停止所有線程)既可行又便宜。
  • 備用內(nèi)存設(shè)備上的堆分配(JEP 316)–允許HotSpot VM在備用內(nèi)存設(shè)備上分配Java對(duì)象堆,這將由用戶(hù)指定
  • 附加的Unicode語(yǔ)言標(biāo)簽擴(kuò)展(JEP 314)–目標(biāo)是增強(qiáng)java.util.Locale及其相關(guān)API,以實(shí)現(xiàn)語(yǔ)言標(biāo)簽語(yǔ)法的附加unicode擴(kuò)展(BCP 47)
  • 基于Java的實(shí)驗(yàn)性JIT編譯器(JEP 317)– Oracle希望使其Java JIT編譯器Graal能夠在Linux / x64平臺(tái)上用作實(shí)驗(yàn)性JIT編譯器。
  • 根證書(shū)(JEP 319)–這里的目標(biāo)是開(kāi)源Oracle Java SE中的根證書(shū)
  • 根證書(shū)頒發(fā)機(jī)構(gòu)(CA)計(jì)劃,使OpenJDK構(gòu)建對(duì)開(kāi)發(fā)人員更具吸引力。 它還旨在減少OpenJDK和Oracle JDK構(gòu)建之間的差異
  • 將JDK森林整合到一個(gè)單一的存儲(chǔ)庫(kù)中(JEP 296)–該JEP的主要目標(biāo)是做一些內(nèi)務(wù)處理,并將JDK森林的眾多存儲(chǔ)庫(kù)合并到一個(gè)單一的存儲(chǔ)庫(kù)中
  • 刪除Native-Header生成工具(javah)(JEP 313)–這很明顯,很重要–從JDK中刪除了javah工具

請(qǐng)?jiān)诩覈L試一下

就像其他所有JDK版本一樣,Oracle已經(jīng)創(chuàng)建了一個(gè)早期訪問(wèn)版本,Java用戶(hù)可以下載該版本以測(cè)試新功能。 實(shí)際上,該JEP自2016年初以來(lái)就可以進(jìn)行試駕了,所以您還等什么呢?

即使您尚未開(kāi)始考慮遷移到JDK 9,了解新功能并有機(jī)會(huì)向平臺(tái)設(shè)計(jì)者提供反饋也是了解新版本并對(duì)其產(chǎn)生影響的好方法。社區(qū)。

最后的想法

最近,我們一直密切關(guān)注Java平臺(tái)的開(kāi)發(fā)。 自去年9月發(fā)布Java 9以來(lái),感覺(jué)整個(gè)平臺(tái)已經(jīng)完成了180次。他們向我們介紹了模塊化Java,加上Mark Reinhold宣布JDK 10將在2018年3月發(fā)布,并且Java將轉(zhuǎn)換為Java 9。 6個(gè)月的發(fā)布周期。

諸如Project Jigsaw之類(lèi)的功能強(qiáng)大的項(xiàng)目阻止了Java的新版本的發(fā)布。 現(xiàn)在,我們將每6個(gè)月獲得一個(gè)新版本,從2018年9月JDK 11開(kāi)始,每3年就會(huì)提供長(zhǎng)期支持版本。

基本上,不要太自在。 Oracle在接下來(lái)的幾年中對(duì)Java平臺(tái)制定了宏偉的計(jì)劃。 現(xiàn)在,雖然,被抓到的最好的Java 9與我們的工程副總裁,和合Steingarten的, 就在這里 。

翻譯自: https://www.javacodegeeks.com/2018/03/java-10-will-change-way-code.html

java改變變量編碼方式

總結(jié)

以上是生活随笔為你收集整理的java改变变量编码方式_Java 10将如何改变您的编码方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。