多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

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

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

       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一開始砍掉后又不得不彌補上的特性,將會在后面文章介紹。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 爱爱小视频日本 | 久久99中文字幕伊人 | 亚洲欧美激情视频 | 一级女性全黄久久生活片免费 | 国产精品合集一区二区三区 | 欧美片欧美日韩国产综合片 | 免费亚洲视频在线观看 | 色婷婷91| 男女激情网 | 秋霞福利| 精品久久久久久中文字幕一区 | 中文字幕亚洲无线码高清 | 91成人免费福利网站在线 | 午夜视频在线观看视频 | 亚洲欧美综合视频 | 一区二区三区不卡视频 | 国产精品久久久久久久久久98 | 亚洲第一视频在线播放 | 国产精品福利视频手机免费观看 | 在线国产福利 | 羞羞视频免费入口网站 | 国产成人毛片毛片久久网 | 欧美视频在线观看视频 | 国产在线永久视频 | 欧美办公室大尺度做爰视频 | 亚洲国产欧美一区二区欧美 | 国产一区二区三区在线 | 成人国产精品一级毛片了 | 深夜影院深a久久 | 一级特黄aa大片欧美网站 | 国产欧美一区二区三区精品 | 国产亚洲精品国产一区 | 男女羞羞网站 | 欧美成人天天综合在线视色 | 久久艹免费视频 | 亚洲福利视频在线 | 国产福利一区二区精品视频 | 痴汉电车在线看 | 手机看片一区 | 性一交一乱一伦 | 亚洲 欧美 视频 |