作者:kelthuzadx

鏈接:nowcoder.com/discuss/18來源:牛客網

面試質量非常高。。。。非常高。。。高。。。

一面

  1. 自我介紹
  2. 看過hotspot哪些模塊,模板解釋器工作說一下,生成的native code放在哪,怎麼處理safepoint的
  3. 說項目,實現了哪些位元組碼指令;monitorenter monitorexit怎麼實現的;GC;new Thread怎麼實現的;synchronized怎麼實現的,對象鎖是每個對象都有嗎,怎麼確定是否給對象分配對鎖;怎麼進行對象分配的,STW之後用戶線程還能繼續嗎so on
  4. 演算法題,無向圖的複製;不消耗額外空間重寫一個;如果多線程怎麼做,說一下
  5. lookupswitch和tableswitch區別
  6. 學校開過哪些課,編譯原理自己學的嗎
  7. Collections.sort(),歸併快排區別,為什麼jawa老版本用歸併不用快排
  8. HashMap說一下,cpp的map和jawa的HashMap區別,hash衝突有哪些解決方法,unordered_map怎麼解決hash衝突的
  9. GC新生代複製怎麼解決對象指針改變(移動)的問題的,CMS寫屏障,三色標記
  10. 調試方法有哪些,條件斷點打過嗎
  11. 有什麼要問的

二面

  1. C 和jawa區別,確定性gc非確定性gc區別
  2. JMM 看過哪些,volatile重排序,sfence lfence mfence
  3. X86/x64 加不加volatile原子性與否,如果用jawa你會怎麼做
  4. 口述引用計數智能指針實現
  5. C RAII, jawa能實現RAII嗎
  6. C 怎麼做一個內存檢測,那種可以看內存分佈情況的
  7. C 怎麼做一個內存泄漏檢測工具,類似valgrind
  8. 如果讓你給C 加一個gc怎麼做
  9. 參加過哪些開源社區,提交的請求為什麼沒有merge;成績怎麼樣,實習滿分是什麼概念,英語怎麼樣,翻譯的effective modern cpp是幫老師翻譯的嗎etc
  10. 標量替換,逃逸分析,標量是什麼
  11. 你的JVM怎麼處理safepoint,這種實現有什麼問題,如果for循環很久到不了safe point就內存溢出怎麼辦,回邊有了解嗎
  12. 有什麼要問的

三面

三面問了一個宇宙。。。

  1. HotSpot的oop是什麼,簡單說一下
  2. JVM的偏向鎖,輕量級鎖,重量級鎖。偏向鎖怎麼做的,輕量級怎麼膨脹到重量級。
  3. JVM新生代劃分,TLAB
  4. CMS詳細階段以及做的事情
  5. C 的RAII,lock_guard,有什麼好處
  6. C 的shared_ptr和unique_ptr
  7. Full GC是什麼,在什麼時候發生,這個正常嗎,解決方案
  8. Safepoint知道嗎,如果在JNI方法裡面走到JNI的safepoint,hotspot大概是怎麼實現safepoint的
  9. G1GC用過嗎,用戶能控制吞吐量嗎,CMS和G1GC各有什麼好處,什麼場景用什麼
  10. 一個程序的編譯流程,詞法分析語法分析,中間IR,代碼生成
  11. MySQL分庫分表,思路就行 (!)
  12. 分散式鎖怎麼實現 (!)
  13. 如果一個問題你實在解決不了怎麼辦,就是gdb coredump,文檔都搞不定的情況
  14. 如果項目很急,另一個同事非常不給力,你怎麼辦
  15. SpringBoot用過嗎,相對於傳統spring有什麼好處 (!)
  16. MVC是什麼,分別說一下,你覺得VUE做MVC和後端做有什麼不同 (!)
  17. Go語言用過嗎,協程說一下,和線程比較一下
  18. Maven可以做什麼,能自動管理依賴嗎,自動下載的jars大概放在哪個目錄,git rebase,git merge區別
  19. 持續集成用過嗎,是什麼東西,為什麼要用它,交叉編譯不也是可以嗎
  20. CAS在底層做了,lock cmpxchg怎麼做的
  21. SIMD知道嗎,說一下 (!)
  22. JVMTI說一下 (!)
  23. 演算法,二叉樹的分層遍歷

四面

  1. 自我介紹
  2. 創建線程的方式有哪些,Java線程模型;1:1和N:M優缺點
  3. 線程死鎖怎麼排查;jps jmap分別用於什麼,如果上述方案排查不到怎麼辦
  4. 怎麼查看Java線程對應的OS線程PID
  5. synchronized和ReentrantLock
  6. 線程池工作原理,怎麼處理IDLE線程的,代碼上說一下
  7. ConcurrentHashmap和JDK8之前有什麼區別;size是怎麼求的
  8. 對象的hashCode底層有哪幾種方法;
  9. 快排原理,非遞歸怎麼實現;堆排序原理
  10. MySQL隔離級別,臟讀幻讀是什麼,會在哪一級發生
  11. 索引的底層在InnoDB和MyISAM上的不同
  12. 參加過什麼開源社區;生活學習比賽etc;
  13. 有什麼要問的

HR面

人生境遇追求

與作者交流:nowcoder.com/discuss/18

更多筆經面經:nowcoder.com/discuss?


推薦閱讀:
相關文章