Java面試中遇到的坑【填坑篇】

我將題目答案寫下來(lái),這個(gè)并非標(biāo)準(zhǔn)答案磷仰,有不準(zhǔn)確的地方請(qǐng)大家辯證補(bǔ)充。

1.StringBuilder替代String拼接,面試中經(jīng)常會(huì)問(wèn)到

String,StringBuilder,StringBuffer的區(qū)別祝蝠。

解答:String類作為java語(yǔ)言中最常見的字符串類被廣泛使用,如果在做大量字符串拼接效率時(shí)變得比較低幻碱,因?yàn)樘摂M機(jī)需要不斷地將對(duì)象引用指向新的地址绎狭。因此,一般方法內(nèi)的私有變量推薦使用stringBuilder來(lái)完成褥傍,如果是多線程需要同步的自然選用stringBuffer儡嘶。

1.對(duì)參數(shù)未做空驗(yàn)證,就做判斷值相等

下面的寫法將常量放到方法左邊恍风,能防止NPE蹦狂。

解答:關(guān)于這道題需要查看String類中equals的實(shí)現(xiàn)方法,當(dāng)左邊為Null時(shí)會(huì)出現(xiàn)NPE朋贬。因此后續(xù)代碼中需要保證equals方法左邊變量不為null凯楔。

2.這個(gè)坑很多兄弟都踩過(guò),知道為什么

打印結(jié)果為false,而下面結(jié)果為true為啥

解答:Integer類型當(dāng)正整數(shù)小于128時(shí)是在內(nèi)存棧中創(chuàng)建值的锦募,并將對(duì)象指向這個(gè)值摆屯,這樣當(dāng)比較兩個(gè)棧引用時(shí)因?yàn)槭峭坏刂芬脙烧邉t相等。當(dāng)大于127時(shí)將會(huì)調(diào)用new Integer()糠亩,兩個(gè)整數(shù)對(duì)象地址引用不相等了虐骑。這就是為什么當(dāng)值為128時(shí)不相等,當(dāng)值為100時(shí)相等了赎线。

3.將變量作為參數(shù)傳遞廷没,在方法中改變參數(shù)值,變量的值改變了么垂寥?下圖total值到底是幾颠黎?

解答:將一個(gè)私有變量作為形參傳遞賦值并不會(huì)改變參數(shù)原有的值另锋,但是如果將一個(gè)對(duì)象作為參數(shù)傳遞改變屬性,對(duì)象的屬性值就會(huì)隨著改變盏缤。因此total的值仍然為0砰蠢。

4.由數(shù)組轉(zhuǎn)換的list,只能循環(huán)遍歷,而不能看長(zhǎng)度唉铜,增加元素台舱,刪除元素,這是為何潭流?下圖代碼執(zhí)行竟然出錯(cuò)竞惋!

解答:因?yàn)閷?shù)組轉(zhuǎn)換的列表其實(shí)不是我們經(jīng)常使用的arrayList,但只是數(shù)組中內(nèi)部定義的一種數(shù)據(jù)結(jié)構(gòu)類型灰嫉,本質(zhì)還是原數(shù)組而并非列表拆宛,因此當(dāng)向列表添加元素就會(huì)出現(xiàn)錯(cuò)誤,這道題上當(dāng)?shù)男值懿簧侔伞?/p>

5.將列表中李明的名字移除掉讼撒,下圖實(shí)現(xiàn)有無(wú)問(wèn)題浑厚?

解答:在列表中移除最后一個(gè)元素按說(shuō)應(yīng)該沒(méi)有問(wèn)題的,但是這個(gè)算法還是出現(xiàn)了錯(cuò)誤根盒,主要是這種寫法的列表循環(huán)遵循下表索引查找钳幅,當(dāng)移除某個(gè)元素時(shí),上次計(jì)算出來(lái)的長(zhǎng)度超過(guò)了當(dāng)前列表長(zhǎng)度炎滞,故而會(huì)出現(xiàn)越界錯(cuò)誤敢艰。

6.在指定目錄下創(chuàng)建文件目錄,到底使用哪一種呢册赛,兩個(gè)方法都沒(méi)報(bào)錯(cuò)钠导,為何第一次沒(méi)創(chuàng)建目錄而第二次創(chuàng)建?

解答:mkdirs()可以建立多級(jí)文件夾森瘪,而mkdir()只會(huì)建立一級(jí)的文件夾牡属。這個(gè)主要依靠java底層調(diào)用操作系統(tǒng)的實(shí)現(xiàn),作者愚見無(wú)須弄明白底層實(shí)現(xiàn)原理扼睬,只要使用中能區(qū)分不留BUG就好湃望。

7.老板從客戶那里回來(lái)后罵了我一頓,說(shuō)是客戶界面顯示金額很奇怪痰驱,我的代碼那里有問(wèn)題?

解答:這道題如果我是老板我會(huì)打你的瞳浦,因?yàn)槔习逯耙矊戇^(guò)代碼担映。老板之所以罵你是因?yàn)榭蛻艨吹降奶婀忠灾劣诳床欢瑑蓚€(gè)float類型數(shù)據(jù)相減會(huì)丟失精度叫潦,尾部帶著常常的一串?dāng)?shù)字蝇完。如果實(shí)際場(chǎng)景要做計(jì)算我給你兩個(gè)思路:第一可以用bigdecimal來(lái)計(jì)算,第二先將單位做成整數(shù)再做除法。

8.面試官:你能說(shuō)出來(lái)java中實(shí)現(xiàn)多線程的幾種方法么短蜕?

面試者:繼承Thread類和實(shí)現(xiàn)runnable接口!

面試官:除此以外還有方法么氢架?

面試者:就這兩種實(shí)現(xiàn)啊朋魔?岖研!

面試官:我們聊點(diǎn)別的,呵呵警检。

解答:這道題最有意思了孙援,一般人都會(huì)干脆利索回答前兩個(gè),我工作前3年每次都是信心滿滿這樣回答問(wèn)題的扇雕。其實(shí) 實(shí)現(xiàn)多線程還可以實(shí)現(xiàn)Callable接口拓售,利用task來(lái)接受異步線程的執(zhí)行結(jié)果。希望后面再被面試官問(wèn)到這道題可千萬(wàn)別再入坑镶奉,并且能回答這第三種方式跟前兩種不同的地方(可以獲取執(zhí)行結(jié)果)础淤。

9.我只是想讓這個(gè)好好循環(huán)三次,有什么問(wèn)題么哨苛?

解答:這道題主要是犯了整數(shù)符號(hào)位的問(wèn)題了鸽凶,大家可以了解一下

Integer.MAX_VALUE加上1以后的數(shù)值這道陷阱題就解決了。

10.這個(gè)一直沒(méi)有弄明白移国,到底返回哪個(gè)true還是false吱瘩?

解答:這道題大家需要弄明白finally的使用場(chǎng)景,主要是捕獲異常以后必須要執(zhí)行的代碼迹缀,大多是關(guān)閉流之類的使碾。即使try的代碼塊已經(jīng)返回結(jié)果但程序仍然會(huì)執(zhí)行finally里面的代碼,因此上題返回false祝懂。


大家在入門學(xué)習(xí)java或者想要了解的過(guò)程中有遇到任何關(guān)于怎么去學(xué)習(xí)票摇,行業(yè)等方面的問(wèn)題,都可以加我的自學(xué)交流群砚蓬,缺乏相關(guān)的學(xué)習(xí)路線和基礎(chǔ)教程可以直接找我要矢门。我的java交流裙926452303,如面試題獲取我沒(méi)第一時(shí)間回復(fù)到灰蛙,急需的可以入裙自學(xué)下載

這是我在觀看的時(shí)候覺(jué)得非常好的一篇文章祟剔,所以也想分享給各位小伙伴

面試必備 |4年經(jīng)驗(yàn)匯總208道Java 最常見面試題清單+答案

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市摩梧,隨后出現(xiàn)的幾起案子物延,更是在濱河造成了極大的恐慌,老刑警劉巖仅父,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叛薯,死亡現(xiàn)場(chǎng)離奇詭異浑吟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)耗溜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門组力,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人抖拴,你說(shuō)我怎么就攤上這事燎字。” “怎么了城舞?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵轩触,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我家夺,道長(zhǎng)脱柱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任拉馋,我火速辦了婚禮榨为,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘煌茴。我一直安慰自己随闺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布蔓腐。 她就那樣靜靜地躺著矩乐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪回论。 梳的紋絲不亂的頭發(fā)上散罕,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音傀蓉,去河邊找鬼欧漱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛葬燎,可吹牛的內(nèi)容都是我干的误甚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼谱净,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼窑邦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起壕探,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奕翔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后浩蓉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體派继,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年捻艳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驾窟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡认轨,死狀恐怖绅络,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘁字,我是刑警寧澤恩急,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站纪蜒,受9級(jí)特大地震影響衷恭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纯续,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一随珠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猬错,春花似錦窗看、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至逢唤,卻和暖如春拉讯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工嘹裂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留有鹿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓盖彭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親页滚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子召边,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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

  • 所有知識(shí)點(diǎn)已整理成app app下載地址 J2EE 部分: 1.Switch能否用string做參數(shù)? 在 Jav...
    侯蛋蛋_閱讀 2,450評(píng)論 1 4
  • 本系列出于AWeiLoveAndroid的分享裹驰,在此感謝隧熙,再結(jié)合自身經(jīng)驗(yàn)查漏補(bǔ)缺,完善答案幻林。以成系統(tǒng)贞盯。 Java基...
    濟(jì)公大將閱讀 1,529評(píng)論 1 6
  • ? 目前市面上的面試題存在兩大問(wèn)題:第一音念,題目太舊好久沒(méi)有更新了,還都停留在 2010 年之前的狀態(tài)躏敢;第二闷愤,近幾年...
    JAVA伯樂(lè)閱讀 1,135評(píng)論 0 9
  • ES6 的class可以看作只是一個(gè)語(yǔ)法糖,它的絕大部分功能件余,ES5 都可以做到讥脐,新的class寫法只是讓對(duì)象原型...
    SunshineBrother閱讀 128評(píng)論 0 0
  • 人生不如意事十之八九,但如果我們放棄自己的信念啼器,不再去努力旬渠,就永遠(yuǎn)沒(méi)有希望,所謂的幸運(yùn)不是從天而降端壳,靠自己的努力告丢,...
    easyer6閱讀 267評(píng)論 0 1