騰訊T2手把手教你!Android事件分發機制及設計思路,已開源

小小陳刀仔發表於2020-12-18

鹹魚翻身不斷上演

2018年5月份,北京,在所謂的網際網路寒冬裡,一個普通二本的學生,在小公司工作一年後,跳槽拿到了百度的offer,月薪從9k變為17k,漲薪幅度接近100%。

2018年底,上海,一個只有高中學歷的同學,通過培訓加入了IT行業,剛開始他的月薪只有6k,一年後,他的月薪變為了16k,漲幅接近167%。

2019年3月,北京,一個xx科技學院畢業的的普通二本,在小公司跌跌撞撞半年後,今年年初突然開掛,成功拿到了百度、小米、網易和頭條的offer,最終他選擇了多金的頭條,拿到了近30k的月薪。

2020年初,深圳,一個物理專業畢業的研究生,在工作短短兩年後,拿到了年薪50萬的offer,現在已經是高階工程師了。

像這樣的例子還有很多,無法一一列舉,可見,沒有名校學歷和耀眼的光環,照樣可以進入大廠拿高薪,只是很多人沒有領悟要領而已。

打鐵還需自身硬

其實,對於學歷普通也沒有耀眼光環的人來說,進大廠就靠一條,那就是:技術實力。但是很多人在小廠待習慣了,總是用小廠的標準來衡量大廠的要求,屢次面試受挫,於是得出了一個結論:面試造飛機,入職擰螺絲釘。

但事實上,大廠的平臺更大,使用者量也更多,自然技術要求也更高,不能完全用擰螺絲釘來形容。就算大廠做的也是普通的事情,但是很多時候,大廠對穩定性、執行效率和崩潰率的極致追求,都是在小廠無法體會的。

我們知道,一件看似簡單的事情,如果要做到80分,那輕而易舉;如果要做到95分以上,那就非常困難了;而如果要做到99分以上,那就難如登天了。在大廠很多時候都要把事情做到95分甚至更高,這種追求極致的過程很有技術含量,大家好理解嗎?

如何進入大廠,我總結下來就是:

  • 脫離小廠思維,按照大廠的技術標準來要求自己
  • 整理核心技能樹
  • 潛心修煉一年

瞭解我的讀者都知道,我待過很多大廠,騰訊百度滴滴我都待過,而且我的技術級別還不低,好幾年前我就是技術專家了,我很清楚大廠的用人標準和技術要求。

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.死鎖產生的條件

本文在開源專案:Android開發不會這些?如何面試拿高薪! 中已收錄,裡面包含不同方向的自學程式設計路線、面試題集合/面經、及系列技術文章等,資源持續更新中…

相關文章