華為+京東數科(原京東金融)面經--Java后台開發


華為:

1.筆試中遇到的問題,如何解決的?(Scanner 如何結束循環讀取數據,筆者在面試中因沒有理解到Scanner類的hasNext()與hasNextLine()是阻塞方法,導致沒有正確退出循環,不清楚的同學要注意了!!!)

2.給一個環,每經過3個剔除一個,如:1,2,3,4,5->1,2,4,5->2,4->4,對於任意給定的一個序列,輸出最后剩下的那個值,手寫代碼(好像劍指offer原題)

3.看你的簡歷上有redis,說一下為什么不直接在緩存中使用一個buffer,而要使用redis?尷尬,東扯西扯。。。

4.多線程(所有大中型公司問到的最多的問題)

sleep()與wait()的區別?

線程1,2,3,如何執行完1再執行2再執行3,當時蒙住了一直在想鎖。面試官提示join(),恍然大悟,然后把這個問題的實現代碼手寫了出來。

面試官給了pass。

京東數科:

京東數科問的問題就比較深也比較難了,面試感受不是很好。

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感覺還有一段路要走。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM