更新時(shí)間:2018年10月24日16時(shí)07分 來源:傳智播客 瀏覽次數(shù):
今天開始給大家總結(jié)一下JDK1.5的新特性,雖然現(xiàn)在出到10了,但是大部分公司還是在用老的版本,面試的時(shí)候難免被問到,我?guī)痛蠹铱偨Y(jié)一下:
(1)靜態(tài)導(dǎo)入:
**import語句可以導(dǎo)入一個(gè)類或某個(gè)包中的所有類
**import static語句導(dǎo)入一個(gè)類中的某個(gè)靜態(tài)方法或所有靜態(tài)方法
靜態(tài)導(dǎo)入后,靜態(tài)方法前面就不用寫類名.方法的方式類調(diào)用
**語法舉例:
import static java.lang.Math.sin;//導(dǎo)入一個(gè)靜態(tài)方法
import static java.lang.Math.*; //導(dǎo)入一個(gè)類中的所有靜態(tài)方法
**靜態(tài)導(dǎo)入使用注意:
當(dāng)類名重復(fù)時(shí),需要制定具體的包名;
當(dāng)方法重名時(shí),需要制定具體所屬的對(duì)象或者類
(2)可變參數(shù):
**可變參數(shù)的特點(diǎn):
*可變參數(shù)只能出現(xiàn)在參數(shù)列表的最后;
*...位于變量類型和變量名之間,前后有無空格都可以;
*調(diào)用可變參數(shù)的方法時(shí),編譯器為該可變參數(shù)隱含創(chuàng)建一個(gè)數(shù)組,
在方法體中以數(shù)組的形式訪問可變參數(shù)。
**可變參數(shù)舉例:
*變量類型... 變量名 如 int... arr表示可變參數(shù)數(shù)組
*public static void show(String str , int... arr){}
(3)增強(qiáng)for循環(huán):
**語法:
for ( type 變量名:集合變量名 ) { … }
**注意事項(xiàng):
迭代變量必須在( )中定義!
集合變量可以是數(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;
}
**增強(qiáng)for循環(huán)代替了迭代器使用的不爽,簡化書寫
**增強(qiáng)for循環(huán)局限性:
對(duì)集合或者數(shù)組進(jìn)行遍歷時(shí),只能取元素,不能對(duì)集合進(jìn)行操作
(4)基本數(shù)據(jù)類型的自動(dòng)裝箱和拆箱
**基本數(shù)據(jù)類型
byte ---> Byte
short ---> Short
int ---> Integer
long ---> Long
float ---> Float
double ---> Double
char ---> Character
boolean ---> Boolean
**例子:
**裝箱:自動(dòng)把一個(gè)基本數(shù)據(jù)類型的數(shù)據(jù)裝箱成一個(gè)該類型數(shù)據(jù)的對(duì)象引用
Integer i = 3;(jdk1.5之前這樣寫是不行的,編譯報(bào)錯(cuò))
**拆箱:自動(dòng)把一個(gè)基本數(shù)據(jù)類型的對(duì)象引用拆箱成一個(gè)基本數(shù)據(jù)類型的數(shù)據(jù),再參與運(yùn)算
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而后面的運(yùn)算返回false呢?
對(duì)于基本數(shù)據(jù)類型的整數(shù),裝箱成Integer對(duì)象時(shí),如果該數(shù)值在一個(gè)字節(jié)內(nèi),(-128~127),
一旦裝箱成Integer對(duì)象后,就把它緩存到磁里面,當(dāng)下次,又把該數(shù)值封裝成Integer對(duì)象時(shí)
會(huì)先看磁里面有沒有該對(duì)象,有就直接拿出來用,這樣就節(jié)省了內(nèi)存空間。因?yàn)楸容^小的整數(shù),
用的頻率比較高,就沒必要每個(gè)對(duì)象都分配一個(gè)內(nèi)存空間。
這就是享元模式!比如26個(gè)英文字母,10個(gè)阿拉伯?dāng)?shù)字
北京校區(qū)