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

歡迎訪問 生活随笔!

生活随笔

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

java

Java中的10颗语法糖

發(fā)布時間:2025/3/21 java 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的10颗语法糖 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

語法糖(Syntactic Sugar):也稱糖衣語法,指在計算機(jī)語言中添加的某種語法,這種語法對語言的功能沒有影響,但是更方便程序員使用。通常來說,使用語法糖能夠增加程序的可讀性,減少程序代碼出錯的機(jī)會。

?? 相對于C#及許多其他JVM來說,Java在現(xiàn)代編譯語言之中屬于“低糖語言”。尤其是JDK1.5之前的版本,“低糖”語法也是java語言被懷疑已經(jīng)“落后”的一個表現(xiàn)方面。

?? 在Javac的源碼中,解語法糖的過程由desugar()方法觸發(fā),在com.sun.tools.javac.comp.TransTypes類和com.sun.tools.javac.comp.Lower類中完成。

Java中的語法糖包括但不限于以下10顆:泛型與類型擦除、自動裝箱和拆箱、遍歷循環(huán)、變長參數(shù)、條件編譯、內(nèi)部類、枚舉類、斷言語句、對枚舉和字符串的switch支持、在try語句中定義和關(guān)閉資源。

1.泛型與類型擦除 Java中的參數(shù)化類型只在源碼中存在,在編譯后的字節(jié)碼中,已經(jīng)被替換為原來的原生類型了,并且在相應(yīng)的地方插入了強(qiáng)制轉(zhuǎn)換代碼。對于運(yùn)行期的Java 語言來說,ArrayList<Integer>和ArrayList<String>就是同一個類。所以說泛型技術(shù)實(shí)際上就是 Java語言的一顆語法糖,Java語言中的泛型實(shí)現(xiàn)方法稱為類型擦除,基于這種方法實(shí)現(xiàn)的泛型稱為偽泛型。// 泛型與類型擦除

public void parameterizedType() {

List<String> list = new ArrayList<String>();

list.add("Fans.Lei");

}

2.自動裝箱和拆箱 自動裝箱和拆箱實(shí)現(xiàn)了基本數(shù)據(jù)類型與對象數(shù)據(jù)類型之間的隱式轉(zhuǎn)換。 // 自動裝箱和拆箱

public void autobox() {Integer one = 1;

if (one == 1) {

System.out.println(one);

}

}

3.foreach循環(huán) foreach語句是java5的新特征之一,在遍歷數(shù)組、集合方面,foreach為開發(fā)人員提供了極大的方便。

foreach語句是for語句的特殊簡化版本,但是foreach語句并不能完全取代for語句,然而,任何的foreach語句都可以改寫為for語句版本。 foreach并不是一個關(guān)鍵字,習(xí)慣上將這種特殊的for語句格式稱之為“foreach”語句。// foreach循環(huán)

public void foreach() {

Integer[] array = { 1, 2, 3, 4, 5 };

for (Integer i : array) {

System.out.println(i);

}

}

4.變長參數(shù) Arrays.asList(1, 2, 3, 4, 5); public static <T> List<T> asList(T... a) {

return new ArrayList<>(a);

}

5.條件編譯 // 條件編譯

public void ifdef() {if (true) {

System.out.println("true");

} else {//此處有警告--DeadCode

System.out.println("false");

}

}

6.內(nèi)部類 public class JavaTenSugar {class Name {

String firstName;String secondName;

}}

7.枚舉類public enum SEX {

MAN, WOMAN

}}

8.斷言語句//運(yùn)行時需要加上 VM參數(shù) -ea public static void main(String[] args) {

String str = "fans2";

boolean flag = "fans".equals(str);

assert (flag);

}//程序結(jié)果Exception in thread "main" java.lang.AssertionError

at sugar.JavaTenSugar.main(JavaTenSugar.java:102)

9.對枚舉和字符串的switch支持 // 對枚舉和字符串的switch支持

public void enumStringSwitch() {

String str = "fans";

switch (str) {

case "fans":

break;case "leiwen":

break;default:

break;

}

}

10.在try語句中定義和關(guān)閉資源 jdk7提供了try-with-resources,可以自動關(guān)閉相關(guān)的資源(只要該資源實(shí)現(xiàn)了AutoCloseable接口,jdk7為絕大部分資源對象都實(shí)現(xiàn)了這個接口)

staticStringreadFirstLineFromFile(Stringpath)throwsIOException{

try(BufferedReaderbr=newBufferedReader(newFileReader(path))){

returnbr.readLine();

}

}

from:?https://www.cnblogs.com/duanxz/p/3916028.html?

總結(jié)

以上是生活随笔為你收集整理的Java中的10颗语法糖的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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