轉 1 年經驗 Java 求職面試題

http://www.javashuo.com/article/p-bzuofytv-kd.html

1 年經驗 Java 求職面試題

 
從 17 年的大三暑假就在這家公司實習轉正,在這家公司呆了快2年了,隨着公司新一輪的融資,看起來公司離上市更近了一步,但期權池也進一步稀釋,沒有期權的我感受回報更少了,另外在這家公司接觸到的東西也有瓶頸了,工做也很是輕鬆,想要進一步提高,就有了離職的想法,嚴格來講,2017.6~2018.5 其實畢業還不到一年,姑且算 1 年經驗吧。
 
先找了幾個高端一些的崗位,挑些了本身懂的技術關鍵詞(JVM\多線程\搜索什麼的),放在了簡歷裏面,在拉勾和傳銷BOSS上投了一個星期的簡歷後陸陸續續的收到了一些面試通知:
 

Day1:

上午:

某互聯網大廠,反正是 top3 大廠中的一個,面試了2輪:

第一輪面試:

  1. 說下 Java 內存模型的組成和各部分的做用
  2. Java 類的加載機制
  3. 說下幾個線程池的類別和特色以及實現原理
  4. 鏈表和 ArrayList 的區別
  5. Android 的消息機制
  6. Android 中須要更新 UI 須要作什麼操做?
  7. TCP 握手揮手過程
  8. ……
基本上都答上了,還有幾個多線程的問題具體的不太記得了
 

第二輪面試:

只有一個主要問題:
如何設計一個大文件下載系統的服務端和客戶端,每次下載的文件大小約好幾G,請設計好客戶端和服務器端的實現。
 
拿到題目有點懵,不太清楚要考什麼?沒答上來,後面提示的考點是怎麼處理併發問題和讀寫速率不一致、IO、OOM、線程佔用。到如今也不知道到底怎麼實現,
而後首戰就跪了……
 

下午:

某初創企業,好像是創建初始團隊吧?
 
  1. CPU 佔用不高,服務假死,除了full Thread\鏈接數滿 還會有什麼緣由
  2. 數據庫的索引有什麼用?是怎麼提高效率的?底層數據結構是什麼樣的?兩個字段同時查詢是分開建索引仍是一塊兒建索引快?
  3. AQS 原理
  4. volatile
  5. 如何排查 OOM
  6. copyOnWrite是怎麼保證併發的, 裏面的 copy 是怎麼實現的
  7. 垃圾回收算法
  8. 何時用有界隊列\何時用無界隊列
  9. 怎麼手動實現一個緩存
  10. 說說你平時怎麼 SQL 調優的,應該關注什麼
  11. 說一下支付流程
  12. 數據庫分表操做過長,在不中止服務的狀況下,應該怎麼操做
  13. 樂觀鎖悲觀鎖
 
依然好難……只回答了個70~80%
 
第一天面試結束,倍受打擊,感受公司不會由於你是1年經驗就下降崗位要求,也讓我以爲本身是否是在以前的公司過輕鬆了,什麼都沒學到。

Day2

沒有面試,處處轉了轉。

Day3

某教育 C輪企業,知名度高,HR 小哥哥人很好,面試官一直黑着個臉
面試:
  1. TCP 握手揮手
  2. 數據庫鏈接池
  3. 講述你理解的JVM(從類的加載到邏輯執行到被垃圾回收)
  4. Linux怎麼查看某進程CPU佔用高是它的什麼行爲致使的,如 i/o等。
  5. 100w個數字取最大的100個的算法,以及算法複雜度
  6. 如何查看特定進程的鏈接數
  7. tcp/ip的過程,是如何保證數據有效性的。
  8. 如何查看order by 走了什麼索引
  9. 同步方法和可重入鎖的應用場景和區別
  10. 說一下object.wait()是幹嗎的
  11. innodb的b+樹的葉子節點上是什麼
 
答上了一部分,面試官喜歡問 linux 的東西,我不是科班的,平時只會ssh、tail、less 、top、netstat 什麼的一些經常使用的命令,對於其餘的原理的都不知道,面試官一直黑着臉,答上來了沒答上來都是冷冰冰的,感受和他工做合做起來會很不舒服,另外瞭解到這裏的HTML和CSS\JS 都要後端寫,沒有DBA和運維,都是開發本身寫,也不喜歡。總體上來講,我和麪試官都不舒服。
 

Day4

某知名博客,初創業務線,小程序方向(依然是後端開發)
筆試+面試
  1. Java 內存模型 GC 算法
  2. Session & Cookie 區別聯繫
  3. Session 生命週期
  4. 多服務器 Session 管理
  5. shell 編程細節
  6. Java 的靜態域理解
  7. Hibernate 懶加載
  8. Hibernate 一、2級緩存區別
  9. Struts 2 與Spring MVC 的原理區別
  10. XSS
  11. SQL 安全
  12. 從0 開始實現秒殺系統如何設計
  13. 小程序分享碼怎麼設計
  14. 談談 JVM 加載類到GC的過程
  15. IOC 原理
  16. AOP 原理
  17. Spring MVC 原理
  18. 口述小程序支付流程
 
除了 Shell 編程細節沒答上來,其餘的基本上都回答的挺滿意的,不過公司是996,但工資和我上家 965 的差很少,因此談薪資的時候基本上沒談攏。
 
 
 
總體上來講,面試效果然的很差,每次面試都是一次打擊,失落感滿滿,但經過此次面試發現本身有不少東西不會的,甚至有些後悔辭職了,或者說後悔在上家公司呆了2年太安逸了,若是能早點開始學習 JVM 等相關的知識點的話,此次面試也許會輕鬆一些,不過總體來講,仍是能讓本身找到一些學習的方向和動力,但願以後也能學習更多知識!

 

 
分類:  JavaWeb
相關文章
相關標籤/搜索