58趕集總部面試java開發(fā)工程師薪前,一道令人費(fèi)解的面試題

一位同學(xué)內(nèi)推,幫我爭(zhēng)取到了58趕集面試的機(jī)會(huì)关斜。沒有筆試示括,直接進(jìn)入技術(shù)面。遇到一位工作五年的工程師翟痢畜,一臉嚴(yán)肅的把我?guī)У紸區(qū)四層的一個(gè)小方桌前垛膝。對(duì)于只有一年工作經(jīng)驗(yàn)的我,小有壓力丁稀。

上來(lái)自我介紹吼拥,談?wù)勛鲞^的項(xiàng)目,只要你思路清楚线衫,表達(dá)準(zhǔn)確就沒什么問題凿可。一般你做的項(xiàng)目和面試的項(xiàng)目也不會(huì)有太大相關(guān),就是看看你的思路授账。下面討論一個(gè)令我費(fèi)解的問題:

(1)談?wù)凧ava容器的線程安全與非線程安全枯跑?

第一,可以談?wù)勀男┦蔷€程安全的容器白热,哪些非線程安全的容器敛助。ArrayList是非線程安全的,Vector是線程安全的棘捣;HashMap是非線程安全的辜腺,HashTable是線程安全的;StringBuilder是非線程安全的乍恐,StringBuffer是線程安全的评疗。

第二,線程安全有什么好處茵烈,有什么壞處百匆。線程安全即在多線程操作同一個(gè)Vector或HashTable對(duì)象時(shí)不會(huì)有任何問題。但是線程安全必須要使用很多synchronized關(guān)鍵字來(lái)同步控制呜投,所以必然會(huì)導(dǎo)致性能的降低加匈。Java后續(xù)版本出才出現(xiàn)了眾多非線程安全的容器。

第三仑荐,安全與性能如何取舍雕拼。如果是多個(gè)線程操作同一個(gè)對(duì)象,那么使用線程安全的Vector粘招;否則啥寇,就使用效率更高的ArrayList。

第四,補(bǔ)充說明辑甜,非線程安全!=不安全衰絮。有人在使用過程中有一個(gè)不正確的觀點(diǎn):我的程序是多線程的,不能使用ArrayList要使用Vector磷醋,這樣才安全猫牡。非線程安全并不是多線程環(huán)境下就不能使用。注意我上面有說到:多線程操作同一個(gè)對(duì)象邓线。注意是同一個(gè)對(duì)象淌友。如果是每個(gè)線程中new一個(gè)ArrayList,而這個(gè)ArrayList只在這一個(gè)線程中使用骇陈,那么肯定是沒問題的亩进。

多個(gè)線程操作同一個(gè)對(duì)象的測(cè)試代碼:

(2)談?wù)凧ava容器類的數(shù)據(jù)結(jié)構(gòu)?

第一缩歪、談?wù)凧ava容器類的框架圖,如果你能夠畫出來(lái)的話谍憔,對(duì)方肯定會(huì)暗自佩服你的邏輯匪蝙。

如圖所示:

①集合接口:6個(gè)接口(短虛線表示),表示不同集合類型习贫,是集合框架的基礎(chǔ)逛球。

②抽象類:5個(gè)抽象類(長(zhǎng)虛線表示),對(duì)集合接口的部分實(shí)現(xiàn)苫昌,可擴(kuò)展為自定義集合類颤绕。

③實(shí)現(xiàn)類:8個(gè)實(shí)現(xiàn)類(實(shí)線表示),對(duì)接口的具體實(shí)現(xiàn)祟身。

接口詳解:

· Collection 接口是一組允許重復(fù)的對(duì)象奥务。

· Set 接口繼承 Collection,但不允許重復(fù)袜硫。使用自己內(nèi)部的一個(gè)排列機(jī)制氯葬。

· List 接口繼承 Collection,允許重復(fù)婉陷,以元素插人的次序來(lái)放置元素帚称。不會(huì)重新排列。

· Map接口是一組成對(duì)的鍵-值對(duì)象秽澳,即所持有的是key-value pairs闯睹。Map中不能有重復(fù)的

key。擁有自己的內(nèi)部排列機(jī)制担神。

第二楼吃,談?wù)劸唧w的實(shí)現(xiàn)機(jī)制,

1. Set子接口:無(wú)序,不允許重復(fù)所刀。List子接口:有序衙荐,可以有重復(fù)元素。具體區(qū)別是:

Set:檢索元素效率低下浮创,刪除和插入效率高忧吟,插入和刪除不會(huì)引起元素位置改變。<對(duì)應(yīng)類有 HashSet,TreeSet>

List:和數(shù)組類似斩披,List可以動(dòng)態(tài)增長(zhǎng)溜族,查找元素效率高,插入刪除元素效率低垦沉,因?yàn)闀?huì)引起其他元素位置改變煌抒。<相應(yīng)類有 ArrayList,LinkedList,Vector>

2. 實(shí)例比較

HashSet:以哈希表的形式存放元素厕倍,插入刪除速度很快寡壮。TreeSet:以二叉樹的形式存放元素。

ArrayList:動(dòng)態(tài)數(shù)組讹弯,LinkedList:鏈表况既、隊(duì)列、堆棧组民。

Vector是一種老的動(dòng)態(tài)數(shù)組棒仍,是線程同步的,效率很低臭胜,一般不贊成使用莫其。

關(guān)注一下吧,讓我們一起在coding的路上果奔吧K嗜B叶浮!

學(xué)習(xí)Java的同學(xué)注意了R亲场5叭臁!
學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話睛驳,歡迎加入Java學(xué)習(xí)交流群346942462烙心,我們一起學(xué)Java!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乏沸,一起剝皮案震驚了整個(gè)濱河市淫茵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蹬跃,老刑警劉巖匙瘪,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铆铆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡丹喻,警方通過查閱死者的電腦和手機(jī)薄货,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碍论,“玉大人谅猾,你說我怎么就攤上這事△⒂疲” “怎么了税娜?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)藏研。 經(jīng)常有香客問我敬矩,道長(zhǎng),這世上最難降的妖魔是什么蠢挡? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任弧岳,我火速辦了婚禮,結(jié)果婚禮上业踏,老公的妹妹穿的比我還像新娘缩筛。我一直安慰自己,他們只是感情好堡称,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艺演,像睡著了一般却紧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胎撤,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天晓殊,我揣著相機(jī)與錄音,去河邊找鬼伤提。 笑死巫俺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肿男。 我是一名探鬼主播介汹,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舶沛!你這毒婦竟也來(lái)了嘹承?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤如庭,失蹤者是張志新(化名)和其女友劉穎叹卷,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骤竹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年帝牡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒙揣。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡靶溜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸣奔,到底是詐尸還是另有隱情墨技,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布挎狸,位于F島的核電站扣汪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏锨匆。R本人自食惡果不足惜崭别,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恐锣。 院中可真熱鬧茅主,春花似錦、人聲如沸土榴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)玷禽。三九已至赫段,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間矢赁,已是汗流浹背糯笙。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撩银,地道東北人给涕。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像额获,于是被迫代替她去往敵國(guó)和親够庙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法抄邀,類相關(guān)的語(yǔ)法首启,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法撤摸,異常的語(yǔ)法毅桃,線程的語(yǔ)...
    子非魚_t_閱讀 31,599評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在褒纲,面了一些公司,掛了不少钥飞,但最終還是拿到小米莺掠、百度、阿里读宙、京東彻秆、新浪、CVTE结闸、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,218評(píng)論 11 349
  • (一)Java部分 1唇兑、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,087評(píng)論 0 62
  • 2016年5月19日扎附,在剩下的62天里,我都做了些什么结耀? 今天留夜,F(xiàn)FC對(duì)象是我,大家說了幾個(gè)新鮮的詞語(yǔ):低調(diào)图甜、淡定...
    淺淺離夜閱讀 297評(píng)論 1 1