教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓(xùn)實戰(zhàn)教程之jdk7的新特性之一

更新時間:2015年12月29日13時25分 來源:傳智播客Java培訓(xùn)學(xué)院 瀏覽次數(shù):

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

0 分享到:
和我們在線交談!