
開篇
說一下我大概的情況。渣本畢業,工作已經有快3年了,從高中就開始玩小破站。無論是學習還是日常放松都是在b站。大學主學的軟體技術專業,是以,入職bilibili是我大學時期給自己定的小目标。
在學校,專業學的算中上的水準,課本知識和老師講的東西基本消化的八九不離十,也自己動手寫過屬于自己APP,參與過一些社團協會共同開發的項目。
剛畢業時候,b站也有校招,滿腔熱血的參加了,準備了好久,結果還是沒有被錄用。當時,挺失落的吧,但是也并沒有放棄我進B站工作的夢想。
7月份的時候一位學長知道我非常想進bilibili,特意告訴我B站有内推名額,問我要不要來試一下,我一口直接答應,然後把手裡的工作辭掉了,破釜沉舟一把,宅家裡半個月複習。将學校所學知識點,以及工作3年的積累經驗都系統的歸納整理了起來。再過一篇,然後就是刷面經,面試場景練習等等等。
世間所有的付出終是有回報的,努力的耕耘,也沒有被辜負。從離職到入職,一個月時間,順利的入職了哔哩哔哩,也是要感謝網友們提供的寶貴經驗,是以整理了一下,把我的面經整理一下也分享出來給大家。
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.死鎖産生的條件
題外話
不管怎麼樣,不論是什麼樣的大小面試,要想不被面試官虐的不要不要的,隻有刷爆面試題題做好全面的準備,當然除了這個還需要在平時把自己的基礎打紮實,這樣不論面試官怎麼樣一個知識點裡往死裡鑿,你也能應付如流啊~
這裡我為大家準備了一些我工作以來以及參與過的大大小小的面試收集總結出來的一套進階學習的視訊及面試專題資料包,點選這裡免費分享給大家,主要還是希望大家在如今大環境不好的情況下面試能夠順利一點,希望可以幫助到大家~
最後如果馬化騰把騰訊給你一天,你會來做什麼?歡迎評論區讨論。
希望可以幫助到大家~
[外鍊圖檔轉存中…(img-uKej2k17-1620610141189)]
最後如果馬化騰把騰訊給你一天,你會來做什麼?歡迎評論區讨論。