java13页_Java 13 新特性及实战案例
近期 Java 界好消息頻傳。先是 Java 13 發(fā)布,接著 Eclipse 也發(fā)布了新版本表示支持新版本的Java 特性。 本文介紹了 Java 13 的新特性并展示了相關(guān)的示例。
2019年9月17日,Java 13 正式發(fā)布。特性如下。
Java 13 新特性
此版本帶來了以下幾大新特性:
JEP 350,Dynamic CDS Archives:擴(kuò)展應(yīng)用程序類-數(shù)據(jù)共享,以允許在 Java 應(yīng)用程序執(zhí)行結(jié)束時(shí)動(dòng)態(tài)歸檔類。歸檔類將包括默認(rèn)的基礎(chǔ)層 CDS(class data-sharing)存檔中不存在的所有已加載的應(yīng)用程序類和庫(kù)類。
JEP 351,ZGC: Uncommit Unused Memory:增強(qiáng) ZGC 以將未使用的堆內(nèi)存返回給操作系統(tǒng)。
JEP 353,Reimplement the Legacy Socket API:使用易于維護(hù)和調(diào)試的更簡(jiǎn)單、更現(xiàn)代的實(shí)現(xiàn)替換 java.net.Socket 和 java.net.ServerSocket API 使用的底層實(shí)現(xiàn)。
JEP 354,Switch Expressions (Preview):可在生產(chǎn)環(huán)境中使用的 switch 表達(dá)式,JDK 13 中將帶來一個(gè) beta 版本實(shí)現(xiàn)。switch 表達(dá)式擴(kuò)展了 switch 語句,使其不僅可以作為語句(statement),還可以作為表達(dá)式(expression),并且兩種寫法都可以使用傳統(tǒng)的 switch 語法,或者使用簡(jiǎn)化的“case L ->”模式匹配語法作用于不同范圍并控制執(zhí)行流。這些更改將簡(jiǎn)化日常編碼工作,并為 switch 中的模式匹配(JEP 305)做好準(zhǔn)備。
JEP 355,Text Blocks (Preview):將文本塊添加到 Java 語言。文本塊是一個(gè)多行字符串文字,它避免了對(duì)大多數(shù)轉(zhuǎn)義序列的需要,以可預(yù)測(cè)的方式自動(dòng)格式化字符串,并在需要時(shí)讓開發(fā)人員控制格式。
安裝 JDK 13
以Windows環(huán)境為例,可通過jdk-13_windows-x64_bin.exe或jdk-13_windows-x64_bin.zip來進(jìn)行安裝。 .exe文件的安裝方式較為簡(jiǎn)單,按照界面提示點(diǎn)擊“下一步”即可。
下面演示.zip安裝方式。
1. 解壓.zip文件到指定位置
將jdk-13_windows-x64_bin.zip文件解壓到指定的目錄下即可。比如,本例子放置在了D:\Program Files\jdk-13位置。
2. 設(shè)置環(huán)境變量
創(chuàng)建系統(tǒng)變量“JAVA_HOME”,其值指向了JDK的安裝目錄。
在用戶變量“Path”中,增加“%JAVA_HOME%\bin”。
注:JDK13已經(jīng)無需再安裝JRE,設(shè)置環(huán)境變量時(shí)也不用設(shè)置CLASSPATH了。
3. 驗(yàn)證安裝
執(zhí)行“java -version”命令進(jìn)行安裝的驗(yàn)證:
$ java -version
java version "13" 2019-09-17
Java(TM) SE Runtime Environment (build 13+33)
Java HotSpot(TM) 64-Bit Server VM (build 13+33, mixed mode, sharing)
如果現(xiàn)實(shí)上述信息,則說明JDK已經(jīng)安裝完成。
如果顯示的內(nèi)容還是安裝前的老JDK版本,則可按照如下步驟解決。
首先,卸載老版本的JDK
其次,在命令行輸入如下指令來設(shè)置JAVA_HOM和Path:
>SET JAVA_HOME=D:\Program Files\jdk-13
>SET Path=%JAVA_HOME%\bin
Eclipse IDE 2019-09
在 Java 13 發(fā)布兩天后的2019年9月19日,Eclipse IDE 2019-09 發(fā)布。Eclipse IDE 2019-09 聲稱支持Java 13。接下里將演示如何使用Eclipse IDE 2019-09編寫 Java 13 的示例。
Eclipse IDE 2019-09 下載地址為 https://www.eclipse.org/downloads/packages/。本例使用的是Eclipse 4.14版本。
編寫 Java 13 示例
實(shí)戰(zhàn)1:Switch表達(dá)式的例子
下面是原有的Switch表達(dá)式的寫法:
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
System.out.println(6);
break;
case TUESDAY:
System.out.println(7);
break;
case THURSDAY:
case SATURDAY:
System.out.println(8);
break;
case WEDNESDAY:
System.out.println(9);
break;
}
在Java 12中,Switch表達(dá)式可以改為如下寫法:
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
還能支持在表達(dá)式中返回值:
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};
在Java 13中,Switch表達(dá)式可以改為如下寫法:
int date = switch (day) {
case MONDAY, FRIDAY, SUNDAY : yield 6;
case TUESDAY : yield 7;
case THURSDAY, SATURDAY : yield 8;
case WEDNESDAY : yield 9;
default : yield 1; // default條件是必須的
};
System.out.println(date);
需要注意的是,在使用yield時(shí),必須要有default條件。
實(shí)戰(zhàn)2:文本塊
自Java 13開始,支持文本塊(Text Blocks)。
以下是Java 13之前的文本塊的處理方式的示例:
String html = "\n" +
"
\n" +"
Hello, world
\n" +" \n" +
"\n";
System.out.println(html);
在上述示例中,由于文本塊需要換行,所以產(chǎn)生了很多本文的拼接和轉(zhuǎn)義。
以下是Java 13中的文本塊示例:
String html2 = """
Hello, world
""";
System.out.println(html2);
在上述示例中,對(duì)于文本塊的處理變得簡(jiǎn)潔、自然。
以上兩個(gè)示例在控制臺(tái)輸出內(nèi)容都是一樣的,效果如下:
Hello, world
更多Java示例,可見“現(xiàn)代Java案例大全”。
參考引用
總結(jié)
以上是生活随笔為你收集整理的java13页_Java 13 新特性及实战案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: postman安装报错 无法定位_VS2
- 下一篇: java美元兑换,(Java实现) 美元