Java面試基礎(chǔ)

標(biāo)簽(空格分隔): java 面試 特性(本文依照 小楠總的簡書進(jìn)行寫作)


Java 1.5新特性

  • 靜態(tài)導(dǎo)入
  • foreach
  • 自動(dòng)拆箱裝箱
  • 枚舉
  • 泛型
  • 元數(shù)據(jù)
  • 線程池
  • 注解

靜態(tài)導(dǎo)入

一般的導(dǎo)入是 import java.xxx.ClassName, 而靜態(tài)導(dǎo)入是 import static java.xxx.ClassName.*或import static java.xxx.ClassName.method鸭轮。
意思是導(dǎo)入一個(gè)類的所有靜態(tài)方法或其中一個(gè)靜態(tài)方法茬缩。

小楠總的簡書

//靜態(tài)導(dǎo)入某一個(gè)方法
import static java.lang.Math.abs;
//靜態(tài)導(dǎo)入一個(gè)類的所有靜態(tài)方法
import static java.lang.Math.*;
public static void main(String[] args) {
    //方法可以直接使用
    System.out.println(abs(-100));
}
//如果類里面原本就有同名的方法的話约素,就會(huì)覆蓋掉靜態(tài)導(dǎo)入的方法了
public static void abs() {
} 

foreach

foreach被稱為增強(qiáng)型for循環(huán)

  1. 常見用法
import java.util.*;
import static java.lang.System.*;
public class Main {
    public static void main(String[] args) {
        //一維數(shù)組foreach遍歷
        int[] array = {1, 3, 5, 7, 9};
        for (int element : array) {
            out.println(element);
        }

        //erweisuz二維數(shù)組遍歷
        int[][] array2 = {{{1,1,1},{2,2,2},{3,3,3}};
        for (int[] row :array2) {
            for (int element2:row) {
                out.println(element2);
            }
        }
    }
}

2.缺點(diǎn)
當(dāng)遍歷集合或者數(shù)組時(shí),如果需要訪問集合或數(shù)組的下標(biāo),foreach會(huì)丟失下標(biāo)信息。即不能通過下標(biāo)信息來訪問元素。這時(shí)候遂唧,推薦用舊的for循環(huán)來訪問元素。

自動(dòng)裝箱和拆箱

1.定義
自動(dòng)裝箱:非人為地將原始類型值自動(dòng)轉(zhuǎn)換為對(duì)應(yīng)的對(duì)象吊奢。
e.g. 將int的變量轉(zhuǎn)換為Integer對(duì)象

自動(dòng)拆箱:非人為地將對(duì)象轉(zhuǎn)換為基本原始類型
e.g. 將Integer對(duì)象轉(zhuǎn)換為int的變量

<table>
<tr>
<th>原始類型</th>
<th>對(duì)應(yīng)的封裝類</th>
</tr>
<tr>
<td>byte</td>
<td>Byte</td>
</tr>
<tr>
<td>short</td>
<td>Short</td>
</tr>
<tr>
<td>char</td>
<td>Character</td>
</tr>
<tr>
<td>int</td>
<td>Integer</td>
</tr>
<tr>
<td>long</td>
<td>Long</td>
</tr>
<tr>
<td>float</td>
<td>Float</td>
</tr>
<tr>
<td>double</td>
<td>Double</td>
</tr>
<tr>
<td>boolean</td>
<td>Boolean</td>
</tr>
</table>

2.示例

//自動(dòng)裝箱示例盖彭,自動(dòng)將基本數(shù)據(jù)類型包裝成對(duì)象
Integer i1 = 1000;
Integer i2 = 1000;

//自動(dòng)拆箱示例,自動(dòng)將對(duì)象解包成基本數(shù)據(jù)類型
System.out.println(i1 + 10);


//如果數(shù)值在-128到127之前页滚,對(duì)象會(huì)復(fù)用(享元設(shè)計(jì)模式)
System.out.println(i1 == i2);

3.弊端
自動(dòng)裝箱的弊端
自動(dòng)裝箱有一個(gè)問題召边,那就是在一個(gè)循環(huán)中進(jìn)行自動(dòng)裝箱操作的情況,如下面的例子就會(huì)創(chuàng)建多余的對(duì)象逻谦,影響程序的性能掌实。

Integer sum = 0;
 for(int i=1000; i<5000; i++){
   sum+=i;
}

上面的代碼sum+=i可以看成sum = sum + i陪蜻,但是+這個(gè)操作符不適用于Integer對(duì)象邦马,首先sum進(jìn)行自動(dòng)拆箱操作,進(jìn)行數(shù)值相加操作宴卖,最后發(fā)生自動(dòng)裝箱操作轉(zhuǎn)換成Integer對(duì)象滋将。其內(nèi)部變化如下

nt result = sum.intValue() + i;
Integer sum = new Integer(result);

由于我們這里聲明的sum為Integer類型,在上面的循環(huán)中會(huì)創(chuàng)建將近4000個(gè)無用的Integer對(duì)象症昏,在這樣龐大的循環(huán)中随闽,會(huì)降低程序的性能并且加重了垃圾回收的工作量。因此在我們編程時(shí)肝谭,需要注意到這一點(diǎn)掘宪,正確地聲明變量類型,避免因?yàn)樽詣?dòng)裝箱引起的性能問題攘烛。

引用自『Java中的自動(dòng)裝箱和拆箱』

枚舉類型

1.作用
保證變量的值只能取指定值中的某一個(gè)魏滚,通過在代碼編譯的時(shí)候就可以知道傳的值是否合法。
2.定義一個(gè)簡單的枚舉類

public enum Size{
    SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");
    private String abbreviation;    //縮寫

    private Size(String abbrviation){ this.abbreviation = abbreviation;}
    public String getAbbriation{ return abbreviation; }
}

3.比較兩個(gè)枚舉類型不用equals坟漱,直接用=

  1. 常用方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鼠次,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芋齿,更是在濱河造成了極大的恐慌腥寇,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件觅捆,死亡現(xiàn)場離奇詭異赦役,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)栅炒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門掂摔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庸论,“玉大人,你說我怎么就攤上這事棒呛∧羰荆” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵簇秒,是天一觀的道長鱼喉。 經(jīng)常有香客問我,道長趋观,這世上最難降的妖魔是什么扛禽? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮皱坛,結(jié)果婚禮上编曼,老公的妹妹穿的比我還像新娘。我一直安慰自己剩辟,他們只是感情好掐场,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贩猎,像睡著了一般熊户。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吭服,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天嚷堡,我揣著相機(jī)與錄音,去河邊找鬼艇棕。 笑死蝌戒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沼琉。 我是一名探鬼主播北苟,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼刺桃!你這毒婦竟也來了粹淋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤瑟慈,失蹤者是張志新(化名)和其女友劉穎桃移,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葛碧,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡借杰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了进泼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔗衡。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纤虽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绞惦,到底是詐尸還是另有隱情逼纸,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布济蝉,位于F島的核電站杰刽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏王滤。R本人自食惡果不足惜贺嫂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雁乡。 院中可真熱鬧第喳,春花似錦、人聲如沸踱稍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寞射。三九已至渔工,卻和暖如春锌钮,著一層夾襖步出監(jiān)牢的瞬間桥温,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工梁丘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侵浸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓氛谜,卻偏偏與公主長得像掏觉,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子值漫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容