總的來說,我覺得是一個(gè)比較正常的公司羊壹,不會(huì)問特別奇怪的問題晶丘,除了項(xiàng)目上我和他有點(diǎn)糾纏不清绪爸,其他上面會(huì)就是會(huì)冤灾,不會(huì)就是不會(huì)徒恋。
電面(一面)
Java基礎(chǔ)(主要是多線程)
- HashMap怎么實(shí)現(xiàn)的?
我問他要說1.7還是1.8的眨攘,他說那你說一下區(qū)別吧主慰。我覺得我可以說的更好嚣州,下次就直接說,不問了共螺。到關(guān)鍵處直接說是1.7是用什么该肴,1.8是用什么。 - ConcurrentHashMap呢
這個(gè)我說錯(cuò)了藐不,其實(shí)這個(gè)沒有用樂觀鎖匀哄,是使用將HashMap分了幾個(gè)塊進(jìn)行加鎖的,這樣能提高并發(fā)性雏蛮。 - 那ConcurrentHashMap使用get的時(shí)候需不需要加鎖涎嚼?
答錯(cuò)了,噗挑秉。 - volatile了解嗎法梯?
volatile是表示可視化,每次修改之后其他線程立即可見犀概,主要原因是volatile每次修改之后會(huì)先同步到內(nèi)存立哑,然后每次讀取的時(shí)候就會(huì)從主內(nèi)存刷新。還有一點(diǎn)就是可以避免語句的重排序(編譯優(yōu)化將兩句不影響其他的語句進(jìn)行重排序)姻灶,實(shí)現(xiàn)這個(gè)的方式是volatile每次在寫入的時(shí)候都會(huì)有一個(gè)內(nèi)存屏障铛绰。 - volatile是原子性的嗎?
不是的产喉。原因是從工作線程中取得volatile的值雖然是原子性的(每次都會(huì)在主存中取得最新的值)壓入到棧中捂掰,但是當(dāng)進(jìn)行運(yùn)算的時(shí)候,可能已經(jīng)被其他線程改了镊叁,這時(shí)候就不能保證了尘颓,比如i++。 - 那什么能實(shí)現(xiàn)原子性的i++晦譬?
答曰ActomicInteger和直接加鎖。 - 那ActomicInteger是怎么實(shí)現(xiàn)的互广?
就是compareAndSet敛腌。
8.還問了compareAndSwap怎么實(shí)現(xiàn)?那不和compareAndSet一個(gè)道理惫皱? - 線程池用過嗎像樊?
用過Executors的newFixedThreadPool(). - 為什么用這個(gè)?參數(shù)是怎么設(shè)定的旅敷?
CPU數(shù)n+1 看書的
JVM
GC了解嗎
線程的狀態(tài)了解嗎
算法
快排
ngnix生棍,開源框架,redis你怎么一個(gè)都不懂媳谁?
現(xiàn)場面(二面)
現(xiàn)場二面的時(shí)候先寫了一下判斷一棵樹是不是二叉樹的子結(jié)構(gòu)涂滴。然后等了兩個(gè)半小時(shí)友酱,終于到我。
面試官看完我寫的題好像也沒有評論柔纵。然后開始看我的簡歷和之前筆試的成績缔杉,隨口問我一面有沒有問HashMap,我說問了搁料,然后告訴他問的是什么或详,我怎么回答的,感覺面試官比較滿意吧郭计。
-
問我記不記得選擇題哪一道題做錯(cuò)了霸琴,我說不記得了,有些不會(huì)就是蒙(是不是錯(cuò)別字罢焉臁)的沈贝,面試官笑了說我倒還挺實(shí)誠
- 問我什么是最優(yōu)置換算法(估計(jì)是筆試做錯(cuò)的題),我說不知道勋乾。然后他就啟發(fā)我宋下,問我如果10G內(nèi)存,有三個(gè)進(jìn)程辑莫,分別占用2G学歧,3G。然后問我如果有個(gè)6G的進(jìn)程要運(yùn)行各吨,能不能加載到內(nèi)存枝笨。我說可以(猜的),我說可以置換出來揭蜒。后面他又補(bǔ)了幾句横浑,告訴我這就是最優(yōu)置換。
-
項(xiàng)目相關(guān)屉更。主要是和我探討我簡歷里面心得體會(huì)的部分徙融。
- 既然索引能保證查詢快,那當(dāng)時(shí)是怎么發(fā)現(xiàn)查詢慢的瑰谜。主要是可以通過慢查詢和Explain語句查看欺冀。還有一個(gè)是什么我當(dāng)時(shí)記不得了,就給他大概說了下萨脑,總之就是可以看表里面建的所有主鍵索引什么的隐轩,我發(fā)現(xiàn)數(shù)據(jù)庫沒建立索引。
- 怎么進(jìn)行模塊劃分渤早。我就說了下經(jīng)常修改的不要和不變動(dòng)的放在一起职车,測試和修改都很麻煩。他可能覺得我說得對,點(diǎn)了點(diǎn)頭悴灵。
- 異常都有哪些扛芽,怎么處理。
我還主動(dòng)講了一下系統(tǒng)的架構(gòu)称勋,我為什么要做這些(避免被甩鍋)和避免被甩鍋的胸哥。感覺面試官也表示理解吧。
2G內(nèi)存赡鲜,100G磁盤空厌,10G數(shù)據(jù)怎么排序。我不會(huì)银酬,面試官給我講了下嘲更,就讓我現(xiàn)場二面了。
現(xiàn)場面(總監(jiān)三面)
- 講講自己的項(xiàng)目揩瞪。我講的就是剛才那一套赋朦。問的很細(xì),包括傳感器是什么樣的李破,網(wǎng)關(guān)和節(jié)點(diǎn)怎么供電之類的宠哄。
- 你用心跳包什么的如果服務(wù)器宕機(jī)或者socket斷開連接了怎么辦。我沒有回答的很好嗤攻,他大概有點(diǎn)不滿意毛嫉,就直接換問題了。
- 為什么TCP是三次連接妇菱。我就給他講為什么兩次不可以承粤。結(jié)果他說沒講清楚,其實(shí)我覺得好清楚闯团。所以我又講了一遍辛臊,他聽明白了,覺得我對TCP理解的比較好房交。問我為什么了解這些彻舰,我說主要還是怕被甩鍋。
- 建立索引相關(guān)涌萤。包括怎么發(fā)現(xiàn)查詢慢和沒有建立索引和B+樹索引的優(yōu)勢淹遵。
- MySQL引擎的區(qū)別。我講MyISAM不支持事務(wù)负溪,而且不支持外鍵。他問我為什么MyISAM為什么不支持事務(wù)济炎,我說我覺得是因?yàn)镸yISAM效率更高川抡。又追問我為什么,我說是什么我自己都忘了,但是依稀記得事務(wù)的建立是需要成本的崖堤。
- 什么是事務(wù)侍咱。這個(gè)之前給楠哥講過,很簡單密幔。
- 問一些家庭情況楔脯,爸媽是不是不想讓唯一的女兒出去。
- 鄙視一下項(xiàng)目不行胯甩。
- 質(zhì)問我為什么不問遠(yuǎn)景能源是干什么的昧廷。
HR面
- 為什么把教育背景放在最后。鄙視一下我的本科教育背景偎箫。但是我強(qiáng)調(diào)自己在每個(gè)學(xué)校成績都是前茅木柬。
- 如果BAT給你Offer,你怎么選擇淹办。
- 對自己的人生規(guī)劃
- 生孩子的話人生怎么規(guī)劃
- 家庭和事業(yè)的平衡
- 如果周圍人都比你牛你能承受嗎眉枕。
體會(huì)
一定要想清楚自己的優(yōu)勢,然后每個(gè)問題都要表現(xiàn)自己的優(yōu)勢怜森,而不是用官話套話告訴面試官速挑。如果每個(gè)問題都能讓面試官有這樣一種感覺,那么他就不會(huì)為難你副硅,哪怕有些問題沒有答上來(也就是說姥宝,技術(shù)面也會(huì)帶有主觀感覺)。