天天看點

位元組跳動面試官:大牛教你怎麼學習Android多程序,深度好文Java相關

位元組跳動面試官:大牛教你怎麼學習Android多程式,深度好文Java相關

開頭

先說一下我大概的情況吧。渣本畢業,工作已經有快兩年了,從高中就開始玩小破站。無論是學習還是日常放松都是在b站。大學主學的軟體技術專業,是以,進大學校門那一刻起,去上海bilibili工作就在心裡埋下了種子。在學校,專業學的挺好的,自己寫過一些小項目,也參與過一些協會開發的項目。

兩年前剛畢業時候,b站也有校招,我當然滿懷期待的參加了,但是并沒有被錄用。當時,挺失落的吧,當時也有想過放棄:我一個渣渣二本畢業,憑什麼去上海,進b站啊。是以就找了個普普通通的公司開始了我的程式員生涯。

到今年年初的時候,疫情爆發了,各行業都收到的很大的影響,也包括我任職的小公司。在家隔離了一個多月,在家玩手機的看到了b站的社招,人閑下來的時候還真就會有各種想法會冒出來,我突然就想到,要不再試一次吧,反正工作也沒了,在家閑着也是閑着,就着手準備bilibili的面試。刷面試題,看别人的面經,總結了一下校招時的失敗經驗…準備了挺久的,得有20多天吧,把學習所學的和工作兩年的所學以及網友的經驗,系統的梳理、鞏固。世間所有的付出終是有回報的,努力的耕耘,肯定是有收獲的。我成功的入職了bilibili,也是要感謝網友們提供的寶貴經驗,是以整理了一下,把我的面經分享出來給大家。

Java相關

1.重載函數的簽名(差別是否是重載函數)

答:方法名+參數類型+參數順序(傳回值不是)

2.finalize的工作原理

答:一旦垃圾收集器準備好釋放對象占用的存儲空間,它首先調用finalize(),而且隻有在下一次垃圾收集過程中,才會真正回收對象的記憶體.是以如果使用finalize(),就可以在垃圾收集期間進行一些重要的清除或清掃工作。此外系統進行垃圾回收時并不保證一定會調用它,是以可以說它和對象被回收沒有必然關系。

3.一個對象的建立過程

答:例如有一個Dog類:

1.即使沒有static,構造器其實也是靜态方法,是以當首次建立Dog時或者Dog的靜态域或者靜态方法被通路的時候,Dog的class對象會被加載。

2.在加載Dog的class的時候可能會發現其有基類,此時先暫停Dog的加載,轉而去加載其基類。是以基類的static域比子類先初始化。

3.載入class檔案之後,會建立一個該該類的class對象,所有關于靜态初始化的動作會被執行,是以靜态初始化隻在Class對象首次加載時進行一次。

4.當使用new的時候,首先為Dog對象在堆上配置設定足夠記憶體空間。這塊記憶體控件會被清零,所有執行個體都被初始化成了預設值,包括基類。

5.執行所有字段定義處的初始化,從基類開始。

6.執行構造器。(在第一行會執行基類的構造器)

4.對象的銷毀是按照建立的逆序來進行的。

5.final的方法和類都不允許覆寫和繼承。private預設實作了final。

6.簡述内部類的特點

7.形式參數可被視為local variable,也就是說形式參數相當于在方法中定義了一個局部變量a,當傳入c時,隻是将c指向的對象給a

8.finally 語句塊是在 try 或者 catch 中的 return 語句之前執行的

9.簡述jvm中預設的classLoader與功能

10.switch語句後的控制表達式隻能是short、char、int、long整數類型和枚舉類型,不能是float,double和boolean類型。String類型是java7開始支援

11.重寫的特性

12.!=和==,當用于基本類型時候,是比較值是否相同;當用于引用類型的時候,是比較對象是否相同,比較記憶體位址

13.null可以被強制類型轉換成任意類型的對象,于是通過它來執行靜态方法

14.如何終止一個線程

15.靜态屬性和靜态方法是否可以被繼承

16.列出各種List,Set,Map,Queue并說出他們的同與不同。

17.列出幾種線程池

18.解釋一下java記憶體模型

19.解釋一下java代碼的原子性

20.解釋一下volatile字段

21.解釋一下synchronized字段

22.Lock的使用

23.wait()和sleep()差別

24.死鎖産生的條件

由于篇幅原因,這份面試寶典已經被整理成了PDF文檔,有需要Android面試寶典全套完整文檔的麻煩點贊+點選GitHub即可擷取資料免費領取方式!
位元組跳動面試官:大牛教你怎麼學習Android多程式,深度好文Java相關

本文在開源項目:GitHub中已收錄,裡面包含不同方向的自學程式設計路線、面試題集合/面經、及系列技術文章等,資源持續更新中…

95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md),裡面包含不同方向的自學程式設計路線、面試題集合/面經、及系列技術文章等,資源持續更新中…