華爲:java
1.筆試中遇到的問題,如何解決的?(Scanner 如何結束循環讀取數據,筆者在面試中因沒有理解到Scanner類的hasNext()與hasNextLine()是阻塞方法,致使沒有正確退出循環,不清楚的同窗要注意了!!!)面試
2.給一個環,每通過3個剔除一個,如:1,2,3,4,5->1,2,4,5->2,4->4,對於任意給定的一個序列,輸出最後剩下的那個值,手寫代碼(好像劍指offer原題)redis
3.看你的簡歷上有redis,說一下爲何不直接在緩存中使用一個buffer,而要使用redis?尷尬,東扯西扯。。。設計模式
4.多線程(全部大中型公司問到的最多的問題)數組
sleep()與wait()的區別?緩存
線程1,2,3,如何執行完1再執行2再執行3,當時矇住了一直在想鎖。面試官提示join(),恍然大悟,而後把這個問題的實現代碼手寫了出來。安全
面試官給了pass。多線程
京東數科:jvm
京東數科問的問題就比較深也比較難了,面試感覺不是很好。加密
1.聊項目,針對登陸這一塊就被問倒了,如如何經過ticket判斷當前用戶的登陸狀態,一些加密方法(非對稱、對稱加密等),項目是筆者最薄弱的地方,安全方面的知識更是欠缺,這裏大部分都是處於被虐階段。
尊敬的面試官,您好,咱能聊聊java基礎嗎?額。。。好吧
2.java經常使用的集合類有哪些?ArrayList與LinkedList的區別?爲何ArrayList的查找時間複雜度爲1,底層實現原理是什麼?
3.HashMap()以數組鏈表形式存儲,當鏈表長度達到8以後,會不會產生變化?答:鏈表轉化爲紅黑樹,筆者解釋了半天爲何長度是8的時候產生變化(空間複雜度+時間複雜度+鏈表達到8的機率(根據泊松分佈))。面試官讓聊一聊紅黑樹,這個我真的不太會,下來學吧。。。
4.多線程。volatile關鍵字,這個我。。。有印象,但不會。而後說了一下synchronized與lock的區別。
5.設計模式,主要聊了一下工廠模式。
6.jvm相關
爲何要將堆上內存分爲新生代和老年代?
聊一聊g1的特色
如何判斷對象是否存活(引用計數法+可達性分析)。
以上就是這兩次面試的主要內容。(華爲25分鐘+京東數科42分鐘)筆者自認自身實力目前還欠缺不少,目前已拿到三星電子西安研究所+平安科技offer,期待華爲的offer平安無恙,距離京東數科的offer感受還有一段路要走。