遠(yuǎn)景能源面經(jīng)


總的來說,我覺得是一個比較正常的公司,不會問特別奇怪的問題,除了項目上我和他有點糾纏不清,其他上面會就是會,不會就是不會。

電面(一面)

Java基礎(chǔ)(主要是多線程)

  1. HashMap怎么實現(xiàn)的?
    我問他要說1.7還是1.8的,他說那你說一下區(qū)別吧。我覺得我可以說的更好,下次就直接說,不問了。到關(guān)鍵處直接說是1.7是用什么,1.8是用什么。
  2. ConcurrentHashMap呢
    這個我說錯了,其實這個沒有用樂觀鎖,是使用將HashMap分了幾個塊進(jìn)行加鎖的,這樣能提高并發(fā)性。
  3. 那ConcurrentHashMap使用get的時候需不需要加鎖?
    答錯了,噗。
  4. volatile了解嗎?
    volatile是表示可視化,每次修改之后其他線程立即可見,主要原因是volatile每次修改之后會先同步到內(nèi)存,然后每次讀取的時候就會從主內(nèi)存刷新。還有一點就是可以避免語句的重排序(編譯優(yōu)化將兩句不影響其他的語句進(jìn)行重排序),實現(xiàn)這個的方式是volatile每次在寫入的時候都會有一個內(nèi)存屏障。
  5. volatile是原子性的嗎?
    不是的。原因是從工作線程中取得volatile的值雖然是原子性的(每次都會在主存中取得最新的值)壓入到棧中,但是當(dāng)進(jìn)行運(yùn)算的時候,可能已經(jīng)被其他線程改了,這時候就不能保證了,比如i++。
  6. 那什么能實現(xiàn)原子性的i++?
    答曰ActomicInteger和直接加鎖。
  7. 那ActomicInteger是怎么實現(xiàn)的?
    就是compareAndSet。
    8.還問了compareAndSwap怎么實現(xiàn)?那不和compareAndSet一個道理?
  8. 線程池用過嗎?
    用過Executors的newFixedThreadPool().
  9. 為什么用這個?參數(shù)是怎么設(shè)定的?
    CPU數(shù)n+1 看書的

JVM

GC了解嗎
線程的狀態(tài)了解嗎

算法

快排

ngnix,開源框架,redis你怎么一個都不懂?

現(xiàn)場面(二面)

現(xiàn)場二面的時候先寫了一下判斷一棵樹是不是二叉樹的子結(jié)構(gòu)。然后等了兩個半小時,終于到我。

面試官看完我寫的題好像也沒有評論。然后開始看我的簡歷和之前筆試的成績,隨口問我一面有沒有問HashMap,我說問了,然后告訴他問的是什么,我怎么回答的,感覺面試官比較滿意吧。

  1. 問我記不記得選擇題哪一道題做錯了,我說不記得了,有些不會就是蒙(是不是錯別字啊)的,面試官笑了說我倒還挺實誠

    • 問我什么是最優(yōu)置換算法(估計是筆試做錯的題),我說不知道。然后他就啟發(fā)我,問我如果10G內(nèi)存,有三個進(jìn)程,分別占用2G,3G。然后問我如果有個6G的進(jìn)程要運(yùn)行,能不能加載到內(nèi)存。我說可以(猜的),我說可以置換出來。后面他又補(bǔ)了幾句,告訴我這就是最優(yōu)置換。
  2. 項目相關(guān)。主要是和我探討我簡歷里面心得體會的部分。

    • 既然索引能保證查詢快,那當(dāng)時是怎么發(fā)現(xiàn)查詢慢的。主要是可以通過慢查詢和Explain語句查看。還有一個是什么我當(dāng)時記不得了,就給他大概說了下,總之就是可以看表里面建的所有主鍵索引什么的,我發(fā)現(xiàn)數(shù)據(jù)庫沒建立索引。
    • 怎么進(jìn)行模塊劃分。我就說了下經(jīng)常修改的不要和不變動的放在一起,測試和修改都很麻煩。他可能覺得我說得對,點了點頭。
    • 異常都有哪些,怎么處理。
      我還主動講了一下系統(tǒng)的架構(gòu),我為什么要做這些(避免被甩鍋)和避免被甩鍋的。感覺面試官也表示理解吧。
  3. 2G內(nèi)存,100G磁盤,10G數(shù)據(jù)怎么排序。我不會,面試官給我講了下,就讓我現(xiàn)場二面了。

現(xiàn)場面(總監(jiān)三面)

  1. 講講自己的項目。我講的就是剛才那一套。問的很細(xì),包括傳感器是什么樣的,網(wǎng)關(guān)和節(jié)點怎么供電之類的。
    • 你用心跳包什么的如果服務(wù)器宕機(jī)或者socket斷開連接了怎么辦。我沒有回答的很好,他大概有點不滿意,就直接換問題了。
    • 為什么TCP是三次連接。我就給他講為什么兩次不可以。結(jié)果他說沒講清楚,其實我覺得好清楚。所以我又講了一遍,他聽明白了,覺得我對TCP理解的比較好。問我為什么了解這些,我說主要還是怕被甩鍋。
    • 建立索引相關(guān)。包括怎么發(fā)現(xiàn)查詢慢和沒有建立索引和B+樹索引的優(yōu)勢。
    • MySQL引擎的區(qū)別。我講MyISAM不支持事務(wù),而且不支持外鍵。他問我為什么MyISAM為什么不支持事務(wù),我說我覺得是因為MyISAM效率更高。又追問我為什么,我說是什么我自己都忘了,但是依稀記得事務(wù)的建立是需要成本的。
    • 什么是事務(wù)。這個之前給楠哥講過,很簡單。
  2. 問一些家庭情況,爸媽是不是不想讓唯一的女兒出去。
  3. 鄙視一下項目不行。
  4. 質(zhì)問我為什么不問遠(yuǎn)景能源是干什么的。

HR面

  1. 為什么把教育背景放在最后。鄙視一下我的本科教育背景。但是我強(qiáng)調(diào)自己在每個學(xué)校成績都是前茅。
  2. 如果BAT給你Offer,你怎么選擇。
  3. 對自己的人生規(guī)劃
  4. 生孩子的話人生怎么規(guī)劃
  5. 家庭和事業(yè)的平衡
  6. 如果周圍人都比你牛你能承受嗎。

體會

一定要想清楚自己的優(yōu)勢,然后每個問題都要表現(xiàn)自己的優(yōu)勢,而不是用官話套話告訴面試官。如果每個問題都能讓面試官有這樣一種感覺,那么他就不會為難你,哪怕有些問題沒有答上來(也就是說,技術(shù)面也會帶有主觀感覺)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容