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

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

jdk1.5的新特性(上)

更新時間:2018年10月24日16時07分 來源:傳智播客 瀏覽次數(shù):

  今天開始給大家總結(jié)一下JDK1.5的新特性,雖然現(xiàn)在出到10了,但是大部分公司還是在用老的版本,面試的時候難免被問到,我?guī)痛蠹铱偨Y(jié)一下:

  (1)靜態(tài)導入:

  **import語句可以導入一個類或某個包中的所有類

  **import static語句導入一個類中的某個靜態(tài)方法或所有靜態(tài)方法

  靜態(tài)導入后,靜態(tài)方法前面就不用寫類名.方法的方式類調(diào)用

  **語法舉例:

  import static java.lang.Math.sin;//導入一個靜態(tài)方法

  import static java.lang.Math.*; //導入一個類中的所有靜態(tài)方法

  **靜態(tài)導入使用注意:

  當類名重復時,需要制定具體的包名;

  當方法重名時,需要制定具體所屬的對象或者類

  (2)可變參數(shù):

  **可變參數(shù)的特點:

  *可變參數(shù)只能出現(xiàn)在參數(shù)列表的最后;

  *...位于變量類型和變量名之間,前后有無空格都可以;

  *調(diào)用可變參數(shù)的方法時,編譯器為該可變參數(shù)隱含創(chuàng)建一個數(shù)組,

  在方法體中以數(shù)組的形式訪問可變參數(shù)。

  **可變參數(shù)舉例:

  *變量類型... 變量名 如 int... arr表示可變參數(shù)數(shù)組

  *public static void show(String str , int... arr){}

  (3)增強for循環(huán):

  **語法:

  for ( type 變量名:集合變量名 ) { … }

  **注意事項:

  迭代變量必須在( )中定義!

  集合變量可以是數(shù)組或?qū)崿F(xiàn)了Iterable接口的集合類

  **舉例:

  public static int add(int x,int ...args) {

  int sum = x;

  for(int arg:args) {

  sum += arg;

  }

  return sum;

  }

  **增強for循環(huán)代替了迭代器使用的不爽,簡化書寫

  **增強for循環(huán)局限性:

  對集合或者數(shù)組進行遍歷時,只能取元素,不能對集合進行操作

  (4)基本數(shù)據(jù)類型的自動裝箱和拆箱

  **基本數(shù)據(jù)類型

  byte ---> Byte

  short ---> Short

  int ---> Integer

  long ---> Long

  float ---> Float

  double ---> Double

  char ---> Character

  boolean ---> Boolean

  **例子:

  **裝箱:自動把一個基本數(shù)據(jù)類型的數(shù)據(jù)裝箱成一個該類型數(shù)據(jù)的對象引用

  Integer i = 3;(jdk1.5之前這樣寫是不行的,編譯報錯)

  **拆箱:自動把一個基本數(shù)據(jù)類型的對象引用拆箱成一個基本數(shù)據(jù)類型的數(shù)據(jù),再參與運算

  Integer i = 12;

  sop(i+4);

  **享元模式:

  Integer num1 = 12;

  Integer num2 = 12;

  System.out.println(num1 == num2);//打印true

  Integer num5 = Integer.valueOf(12);

  Integer num6 = Integer.valueOf(12);

  System.out.println(num5 == num6);//打印true

  Integer num3 = 129;

  Integer num4 = 129;

  System.out.println(num3 == num4);//打印false

  為什么前面的返回true而后面的運算返回false呢?

  對于基本數(shù)據(jù)類型的整數(shù),裝箱成Integer對象時,如果該數(shù)值在一個字節(jié)內(nèi),(-128~127),

  一旦裝箱成Integer對象后,就把它緩存到磁里面,當下次,又把該數(shù)值封裝成Integer對象時

  會先看磁里面有沒有該對象,有就直接拿出來用,這樣就節(jié)省了內(nèi)存空間。因為比較小的整數(shù),

  用的頻率比較高,就沒必要每個對象都分配一個內(nèi)存空間。

  這就是享元模式!比如26個英文字母,10個阿拉伯數(shù)字



作者:傳智播客JavaEE培訓學院
首發(fā):http://java.itcast.cn/

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