Java面試題總結1

九種基本數(shù)據(jù)類型的大小象缀,以及它們的封裝類:

注:

1.int是基本數(shù)據(jù)類型勒叠,Integer是int的封裝類,是引用類型瘤缩。int默認值是0徐矩,而Integer默認值是null经磅,所以Integer能區(qū)分出0和null的情況掰担。一旦java看到null诀紊,就知道這個引用還沒有指向某個對象,再任何引用使用前沪哺,必須為其指定一個對象沈自,否則會報錯。

2.基本數(shù)據(jù)類型在聲明時系統(tǒng)會自動給它分配空間凤粗,而引用類型聲明時只是分配了引用空間酥泛,必須通過實例化開辟數(shù)據(jù)空間之后才可以賦值

數(shù)組對象也是一個引用對象,將一個數(shù)組賦值給另一個數(shù)組時只是復制了一個引用嫌拣,所以通過某一個數(shù)組所做的修改在另一個數(shù)組中也看的見。

Switch能否用string做參數(shù)?

Switch可以用整型呆躲,枚舉類型异逐,boolean,string類型做參數(shù)插掂,但是不能用浮點型灰瞻。

equals==的區(qū)別。

==操作比較的是兩個變量的值是否相等辅甥,對于引用變量類型表示的是兩個變量在堆中的地址是否相同酝润,即棧中的內容是否相同。equals比較的是兩個對象的內容璃弄。

Object有哪些公用方法

Object是所有類的父類要销,任何類都默認繼承Object類。

Object類的方法:

1.getClass:final方法夏块,獲得運行時類型

2.equals:

3.notify()喚醒在此對象監(jiān)視器上等待的單個線程疏咐。

4.notifyAll()喚醒在此對象監(jiān)視器上等待的所有線程纤掸。

5.wait()在其他線程調用此對象的notify()方法或notifyAll()方法前,導致當前線程等待浑塞。

6.clone:保護方法借跪,實現(xiàn)對象的淺復制,只有實現(xiàn)了Cloneable接口才能調用該方法酌壕,否則拋出CloneNotSupportedException異常掏愁。

Java里除了8中基本類型傳參數(shù)都是值傳遞,其它類對象傳參數(shù)都是引用傳遞卵牍,我們有時候不希望在方法里將參數(shù)改變托猩,這就需要在類中復寫clone方法。

淺復制與深復制

淺復制:被復制對象的所有變量都含有與原來對象相同的值辽慕,而所有的對其它對象的引用仍然指向原來的對象京腥。換言之,淺復制僅僅復制所考慮的對象溅蛉,而不復制它所引用的對象公浪。

深復制:被復制的對象以及該對象所引用的其它對象都復制了一遍。

Java的四種引用船侧,強弱軟虛欠气,以及它們用到的場景

參考:my.oschina.net/ydsakyclguozi/blog/404389

強引用:Object o = new Object(),這里o就是一個強引用镜撩。如果一個對象具有強引用预柒,即使內存不足,也絕不會被垃圾回收器回收袁梗。如果不引用時宜鸯,使o = null,或超出對象的生命周期范圍遮怜,就會被gc回收淋袖。

軟引用:如果一個對象只有軟引用,當內存空間足夠時锯梁,不會被gc回收即碗,當內存空間不足時,會被gc回收陌凳。示例:

String str=new String("abc");//強引用

SoftReference softRef=newSoftReference(str);//軟引用

弱引用:弱引用與軟引用的區(qū)別在于:只具有弱引用的對象擁有更短的生命周期剥懒。在垃圾回收器線程掃描它所管轄的內存區(qū)域的過程中,一旦發(fā)現(xiàn)了只具有弱引用的對象合敦,不管當前內存空間足夠與否初橘,都會回收它的內存。不過,由于垃圾回收器是一個優(yōu)先級很低的線程壁却,因此不一定會很快發(fā)現(xiàn)那些只具有弱引用的對象批狱。

虛引用:“虛引用”顧名思義,就是形同虛設展东,與其他幾種引用都不同赔硫,虛引用并不會決定對象的生命周期。如果一個對象僅持有虛引用盐肃,那么它就和沒有任何引用一樣爪膊,在任何時候都可能被垃圾回收器回收。

HashCode的作用:

HashCode的存在主要是為了查找的快捷性砸王,HashCode是用來在散列存儲結構中確定對象的存儲地址的推盛。如果兩個對象的hashCode值不同,則這兩個對象一定不同谦铃。

ArrayList耘成、LinkedList和Vector的區(qū)別:


Collection繼承圖

LinkedList,ArrayList與Vector的比較:

這三個類都是基于數(shù)組實現(xiàn)的List類

LinkedList和ArrayList是線程不安全的驹闰,Vector是線程安全的瘪菌,但是Vector性能差。

ArrayList是一個可改變大小的數(shù)組.當更多的元素加入到ArrayList中時,其大小將會動態(tài)地增長.內部的元素可以直接通過get與set方法進行訪問,因為ArrayList本質上就是一個數(shù)組嘹朗。

LinkedList是一個雙鏈表,在添加和刪除元素時具有比ArrayList更好的性能.但在get與set方面弱于ArrayList师妙。

StringStringBufferStringBuilder的區(qū)別

String類是不可變類屹培,任何String的改變都會產生一個新的String對象默穴,而StringBuffer和StringBuilder都是可變類。StringBuffer支持并發(fā)操作褪秀,線程安全蓄诽,適合多線程使用,StringBuilder不支持并發(fā)操作溜歪,線程不安全若专,不支持多線程使用,但StringBuilder速度更快蝴猪。

MapSet膊爪、List自阱、QueueStack的特點和用法

Map是使用鍵值對來存儲數(shù)據(jù)米酬,且一一映射沛豌,值可以重復,但是鍵不能。TreeMap可以保證順序加派,HashMap則不行叫确。

Set是不包含重復元素的集合,set最多包含一個null元素芍锦。

List是有序的可重復集合竹勉,可以再任意位置增加和刪除元素。

Queue先進先出娄琉。

Stack后進先出次乓。

使用建議:如果涉及堆棧,隊列等操作孽水,建議使用List票腰;對于快速插入和刪除元素的,建議使用LinkedList女气;如果需要快速隨機訪問元素的杏慰,建議使用ArrayList。

HashMapHashTable的區(qū)別:

HashMap可接受值為null炼鞠,是不同步的缘滥,HashTable不能接受值為null,是同步的簇搅。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末完域,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瘩将,更是在濱河造成了極大的恐慌吟税,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姿现,死亡現(xiàn)場離奇詭異肠仪,居然都是意外死亡,警方通過查閱死者的電腦和手機备典,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門异旧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人提佣,你說我怎么就攤上這事吮蛹。” “怎么了拌屏?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵潮针,是天一觀的道長。 經(jīng)常有香客問我倚喂,道長每篷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮焦读,結果婚禮上子库,老公的妹妹穿的比我還像新娘。我一直安慰自己矗晃,他們只是感情好仑嗅,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喧兄,像睡著了一般无畔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吠冤,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天浑彰,我揣著相機與錄音,去河邊找鬼拯辙。 笑死郭变,一個胖子當著我的面吹牛,可吹牛的內容都是我干的涯保。 我是一名探鬼主播诉濒,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夕春!你這毒婦竟也來了未荒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤及志,失蹤者是張志新(化名)和其女友劉穎片排,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體速侈,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡率寡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了倚搬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冶共。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖每界,靈堂內的尸體忽然破棺而出捅僵,到底是詐尸還是另有隱情,我是刑警寧澤眨层,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布命咐,位于F島的核電站,受9級特大地震影響谐岁,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一伊佃、第九天 我趴在偏房一處隱蔽的房頂上張望窜司。 院中可真熱鬧,春花似錦航揉、人聲如沸塞祈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽议薪。三九已至,卻和暖如春媳友,著一層夾襖步出監(jiān)牢的瞬間斯议,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工醇锚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哼御,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓焊唬,卻偏偏與公主長得像恋昼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赶促,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法液肌,類相關的語法,內部類的語法鸥滨,繼承相關的語法嗦哆,異常的語法,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • (一)Java部分 1爵赵、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,107評論 0 62
  • 相關概念 面向對象的三個特征 封裝,繼承,多態(tài).這個應該是人人皆知.有時候也會加上抽象. 多態(tài)的好處 允許不同類對...
    東經(jīng)315度閱讀 1,943評論 0 8
  • 01 曾經(jīng)我的朋友白素跟我講過一個真實發(fā)生的故事: 她有一個好朋友叫陳冰,她們兩個人是玩得特別鐵的那種秕铛。有一次约郁,公...
    徐少寒閱讀 10,845評論 115 258
  • 南音煙雨閱讀 349評論 12 4