這個不用解釋就知道重要吧,其實很多公司會筆試一些Java題,我這裏就總結一些比較重要的知識,這篇博客會持續更新
基礎知識
1、進程間通訊即Message,Handler,Message Queue,Looper之間的關係:
線程中必須調用Looper.prepare(),並且只能調用一次,才能創建handler,Looper.prepare()來在本地保存一個looper對象,而looper對象唯一對應一個messagequeue,也就是說,每個線程只有有個looper一個messagequeue,handler個數不限。在我們可以在不同的線程中通過handler改變messagequeue的內容。然後通過looper的loop方法(是一個無限的循環處理messagequeue的內容,這是在調用looer.loop()方法的線程中。也就是目標線程
Java基礎
面向對象三大基本特性,五大基本原則
三大特性是:數據抽象,繼承,多態(多形性) (ps《thinking in Java》)
引用Charlie Calverts對多態的描述——多態性是允許你將父對象設置成爲一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作(摘自“Delphi4 編程技術內幕”)。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針
五大基本原則:
- 單一職責原則SRP(Single Responsibility Principle)
- 開放封閉原則OCP(Open-Close Principle)
- 替換原則(the Liskov Substitution Principle LSP)
- 依賴原則(the Dependency Inversion Principle DIP) 具體依賴抽象,上層依賴下層。假設B是較A低的模塊,但B需要使用到A的功能,
- 接口分離原則(the Interface Segregation Principle ISP)
接口的意義
規範(依賴原則)、擴展(依賴原則、替換原則,接口分離原則)、回調(多形性)
string stringbuilder stringbuffer
String位一個final char數組,線程不安全
Sringbuffer是線程安全
stringbuilder線程不安全。
activity 的生命週期
oncreat()
onstart()
onresume()
onpause()
onstop()
ondestiory()
view的繪圖流程
onmesure()
onlayout()
ondraw()