Oracle于2011年7月28日發(fā)布JDK7,這是Oracle自2010年4月收購(gòu)Sun之后第一次對(duì)JDK進(jìn)行升級(jí),升級(jí)版本的jdk7的發(fā)布距離今天已有4年多的時(shí)間了,隨著jdk7在開(kāi)發(fā)中的使用越來(lái)越廣泛,也為了在實(shí)際使用中更好的使用jdk7,現(xiàn)在為大家分享下jdk7在語(yǔ)法上的部分新特性:
1.整數(shù)二進(jìn)制字面量表示
從JDK7開(kāi)始支持使用二進(jìn)制字面量來(lái)表示整數(shù)(byte、short、int、long)。直接使用二進(jìn)制數(shù)來(lái)表示整數(shù)會(huì)讓我們的代碼看起來(lái)更加容易理解了。其使用語(yǔ)法也非常簡(jiǎn)單,只要在二進(jìn)制數(shù)值前面加 0b(b不區(qū)分大小寫(xiě))即可。為了方便介紹,這里的二進(jìn)制數(shù)只使用四位(不是計(jì)算機(jī)內(nèi)部二進(jìn)制數(shù)的真實(shí)位數(shù))來(lái)表示。示例如下:
比如二進(jìn)制數(shù)2
使用byte類(lèi)型表示為: byte bt=(byte)0b0010; //2
使用short類(lèi)型表示為:short st=(short)0b0010; //2
使用int類(lèi)型表示為:int it=0b0010; //2
使用long類(lèi)型表示為:long ln=0b0010L; //2
2.下劃線在數(shù)字字面量中的使用
在現(xiàn)實(shí)世界里人們表示一些較大的數(shù)字時(shí),為了增加數(shù)字的可讀性,通常會(huì)這么做,如:10000000被表示為10,000,000。大家不難看出被使用分割表示的數(shù)字在讀數(shù)時(shí)非常輕松,且不易出錯(cuò)。那么在編程中能否借鑒這種表示方式呢?答案是肯定的。自jdk7提供了一種解決方案,對(duì)于一些比較大的數(shù)字,可以使用下劃線對(duì)數(shù)字進(jìn)行分割。示例如下:
比如整數(shù):10,000,000
使用int表示為 int i=10_000_000; //10000000
再比如小數(shù):10,000,000.0
使用float表示為 float f=10_000_000.0f; //1.0E7
以上方法非常簡(jiǎn)單的就解決了數(shù)字易讀性的問(wèn)題,但是要注意:這個(gè)用于分割數(shù)字的下劃線只能用在數(shù)字之間。不能用在以下幾個(gè)地方:
1.數(shù)字的開(kāi)頭或結(jié)尾處;
如: int i=10_000_000_; 下劃線在結(jié)尾處是錯(cuò)誤的用法
2.小數(shù)點(diǎn)的前或后;
如:float f=10_000_000_.0f; 下劃線在小數(shù)點(diǎn)的前面是錯(cuò)誤的用法
3.后綴f(f不區(qū)分大小寫(xiě))的前或后;
如:float f=10_000_000.0_f; 下劃線在后綴符號(hào)f的前面是錯(cuò)誤的用法
3.switch語(yǔ)句對(duì)字符串的支持
我們知道java中switch語(yǔ)句對(duì)常量表達(dá)式的數(shù)據(jù)類(lèi)型是有限制的,只能是短整型、整型、byte或字符型。這種限制給我們的實(shí)際應(yīng)用帶來(lái)了諸多不便,以致于在實(shí)際使用中我們盡可能的繞過(guò)switch語(yǔ)句(因?yàn)樵诔绦蛑凶址氖褂妙l率是最高的,所以通常我們會(huì)使用if-else-if代替之)。然而自jdk7打破了這種限制,添加了switch語(yǔ)句對(duì)字符串的支持,那么從現(xiàn)在開(kāi)始我們可以愛(ài)上這位美麗的switch語(yǔ)句了。具體示例如下:
System.out.println("請(qǐng)選擇您的祖國(guó):");
switch("中國(guó)"){
case "中國(guó)":
System.out.println("我愛(ài)死你了,我美麗的祖國(guó)!");
break;
case "兔兒起":
System.out.println("我怎么就頂下了餓鍋的飛機(jī)昵!");
break;
case "餓鍋":
System.out.println("天殺的兔兒起,額和你沒(méi)完!");
break;
case "蓄力牙":
System.out.println("額們的地溝油怎么就溜到你兔兒起去了昵!");
break;
default:
System.out.println("妹鍋大哥應(yīng)該說(shuō)句公道話昵!");
}
本文版權(quán)歸傳智播客
Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!