日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Java5新特性之靜態導入、可變參數、增強for循環、自動拆裝箱

Java5新特性之靜態導入、可變參數、增強for循環、自動拆裝箱

來源:程序員人生   發布時間:2014-10-08 10:36:29 閱讀次數:2177次

       JDK1.5已經發布很長時間,之所以還拿出來是因為它增加了很多個重要的特性,使用這些特性有助于我們簡化開發,編寫的代碼更加簡潔清晰安全,主要有以下幾個特性:

  ?  靜態導入

  ?  可變參數

  ?  增強for循環

  ?  自動拆裝箱

  ? 泛型

  ? 枚舉

       由于泛型、枚舉內容比較多,也最重要,之后單拿出來講。這里先介紹前面四個簡單而又實用的小特性。


1.  靜態導入

  所謂“靜態導入”只不過是在普通的import語句中加入關鍵字static,例如:

  ?  非靜態導入:import java.lang.Math;

  ?  靜態導入 :import static java.lang.Math.*;或import static java.lang.Math.max;

  靜態導入的功能很簡單:

  ?  首先,靜態導入可以導入某個類下的某個方法(靜態),或所有方法,而非靜態導入只能定位到某個類。

  ?  其次,靜態二字的作用起在靜態方法的調用上。如果是非靜態導入,那么調用某個類的靜態方法時要用【類名 . 方法名】;如果是靜態導入,那么調用該類靜態方法時就可以省去類名,直接用【方法名】即可,實例如下:

  1)       非靜態導入:

  

  2)       靜態導入:

  


2.  可變參數

  可變參數說的是一個方法,接收的參數個數是動態可變的。例如我們要封裝一個方法,使得它可以計算任意多個數的加法:

public class VariableParameter { //計算任意多個整數的加法的方法 public static int add(int...args) { int sum = 0; for (int i = 0; i < args.length; i++) { sum = sum+args[i]; } return sum; } public static void main(String[] args) { //測試1:計算2個整數的加法 System.out.println(add(1,2));//輸出3 //測試2:計算3個整數的加法 System.out.println(add(10, 20,30));//輸出60 } }

使用規則:

  1)       如果有多個參數,那么可變參數只能出現在參數列表的最后:例如:public static int add(int x, int y,int...args) {…}。

  2)       位于變量類型與變量名之間(前后有無空格都可以)。

  3)       調用可變參數的方法時,編譯器為該可變參數隱含創建一個數組,在方法體中以數組的方式訪問可變參數。


3.  增強for循環

  很簡單,直接看實例:

public static int add(int x,int...args) { int sum = x; //普通for循環 /* for (int i = 0; i < args.length; i++) { sum = sum+args[i]; }*/ //增強for循環 for(int arg:args){ sum=sum+arg; } return sum; }

使用規則:

  1)       語法,for(type 變量名 : 集合變量名){…},例如:for(int arg : args){…}

  2)       迭代變量必須在()中定義,例如:for(int arg : args){…}

  3)       集合變量可以是數組或實現了Iterable接口的集合類


4.  自動拆裝箱

  拆裝箱即引用類型與值類型的相互轉化,java5以前都是手動的拆裝箱,概念不多說,直接看實例:

public class AutoBox { public static void main(String[] args) { // 自動將基本數據類型(值類型)包裝為Integer(引用類型)對象(裝箱) Integer a = 1; Integer b = 1; System.out.println(a == b);//輸出 TRUE Integer a1 = 130; Integer b1 = 130; System.out.println(a1 == b1);//輸出FALSE //從-128到127之間的數因為用的比較頻繁,所以相同的數會包裝為同一個對象(如上面的a、b),這里應用了“享元模式” //手動裝箱 Integer a2 = Integer.valueOf(1); Integer b2 = Integer.valueOf(1); System.out.println(a2 == b2);//輸出TRUE } }

  代碼注釋中提到了,-128到127之間的數由于非常常用,所以為了節省內存,自動裝箱時運用到了“享元模式”。代碼中Integer a = 1與 Integer b =1;看似是a、b兩個對象,實際上它們指向的是同一塊內存空間。而Integer a1 = 130與 Integer b1= 130;中a1、b1指向的是不同的內存空間,所以它們是兩個不同的對象。

  享元思想:有很多個小對象,它們有很多屬性相同,就將它們弄成一個對象,將那些不同的屬性弄成方法的參數,當需要的時候再傳遞進來。相同的屬性稱為對象的內部狀態,不同的屬性稱為外部狀態。它適合用于只是因重復而導致使用無法令人接受的大量內存的大量物件


5.  總結

  以上幾個小特性,貌似很簡單,但如能熟練使用會很大程度的提高我們的編碼效率,提高代碼質量與性能。枚舉與泛型是java5引入的最重要的兩個特性,其中泛型思想已在上篇文章中介紹。枚舉看似簡單,好處卻很多,是java一開始砍掉后又不得不彌補上的特性,將會在后面文章介紹。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产成人无遮挡在线视频 | 最新国产精品精品视频 | 欧美视频a | 国产福利在线 | 国产青青久久 | 国产精品久久一区二区三区 | 亚洲精品高清在线 | av播播 | yw193com尤物| 久久99精品久久久久久青青日本 | 美女洗澡一级毛片 | 在线天堂v| 久久国产精品99国产 | 欧美精品一区二区三区四区五区 | 国产精品成人3p一区二区三区 | 日韩中文字幕在线观看 | 欧美在线一区二区 | 久久久久久国产精品 | 久久精品中文字幕 | 五月激情综合网 | 久久久久www| av在线播放免费 | 国产精品av一区二区 | 密桃av| www国产xxx | 欧美99视频 | 免费在线成人网 | 国产精品高 | 18做爰免费视频网站 | 天堂av网在线 | 成人午夜电影在线观看 | 日韩精品一区在线视频 | 国产三级精品三级在线观看国产 | 日韩欧美国产综合 | 中文av字幕在线观看 | 在线免费观看成人 | 国产精品99视频 | 亚洲一区二区三区久久 | 国产精品久久久久久久久久免 | 日本国产a | 国产成人av在线播放 |