原创 28.ARouter頁面跳轉原理

上一篇(https://www.jianshu.com/p/4ce5ec52d803)講了註解處理器的使用,這次我們講下ARouter ARouter簡介 ARouter由阿里巴巴開源,是一個用於組件化通信的框架(https://githu

原创 29.ARouter組件互調原理

上一篇https://www.jianshu.com/p/0fa14358a765 講了ARouter的頁面跳轉原理 這篇記錄下ARouter是如何讓兩個互不依賴的組件調用對方的接口的。 通過上一篇中提到的兩個map,groupMap和pa

原创 27.APT技術與JavaPoet在組件化開發中的應用(一)

一.組件化簡介 注:組件化開發只適用於大型團隊協作開發大型項目的場景,如果只是個人或者兩三人開發則沒有必要使用 什麼是組件化 業務按照功能劃分爲一個一個模塊,模塊之間沒有依賴關係,相互平行,模塊之間的通信通過一定技術手段實現的開發方式就叫組

原创 34.Android架構-序列化-Serializable和Parcelable

1.什麼是序列化和反序列化 數據序列化就是將數據結構或者是對象轉換成我們可以存儲或者傳輸的數據格式的一個過程,在序列化的過程中,數據結構或者對象將其狀態信息寫入到臨時或者持久性的存儲區中,而在對應的反序列化過程中,則是生成的數據被還原成數據

原创 33.Android架構-線程(五)-線程常見面試題總結

1.sychronied修飾普通方法和靜態方法的區別?什麼是可見性? 修飾普通方法時,鎖是作用在這個對象實例上,而修飾靜態方法時,鎖是作用在這個類的Class上,我們知道,一個Class可以有多個實例對象,但是Class本身是唯一的,鎖的作

原创 33.Android架構-線程(四)-JMM

JMM基礎-計算機原理 Java內存模型即Java Memory Model,簡稱JMM。JMM定義了Java 虛擬機(JVM)在計算機內存(RAM)中的工作方式,JVM是整個計算機虛擬模型,所以JMM是隸屬於JVM的。Java1.5版本對

原创 32.Android架構-線程(三)

AbstractQueuedSynchronizer 隊列同步器,簡稱AQS,是一個用來構建鎖或者其他同步組件的基礎框架,他使用了一個int型的成員變量來表示同步狀態,內部通過FIFO隊列來完成資源獲取線程的排隊工作 AQS使用方式和其中的

原创 31.Android架構-線程(二)

隊列 隊列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,隊列是一種操作受限制的線性表。進行插入操作的端稱爲隊尾,進行刪除操作的端稱爲隊頭。 在隊列中插入一個隊列

原创 31.Android架構-線程(一)

死鎖 是指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通信而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖。 死鎖發生的條件 1)互斥條件:指進程對所分配到的資源進行排它性使用

原创 30.Android架構-動態代理原理

動態代理和靜態代理的區別之一就是可以同時代理同一個對象的多個接口 public interface Husband { void careFamily(); } public interface Father { void

原创 29.Android架構-註解與反射

註解的作用或者意義是什麼? 註解本身沒有任何意義,單獨的註解就是一種註釋,他需要結合其他如反射、插樁等技術纔有意義。 Java 註解(Annotation)又稱 Java 標註,是 JDK1.5 引入的一種註釋機制。是元數據的一種形式,提供

原创 28.Android架構-泛型通配符

我們有一下幾個類,一個Fruit,一個Apple,Apple 繼承 Fruit,是Fruit的子類。還有一個Plate(盤子)接口,用來裝水果,ApplePlate類,專門裝蘋果 interface Plate<R>{ void

原创 27.Android架構-泛型擦除機制

什麼是泛型擦除 Java的泛型是JDK5新引入的特性,爲了向下兼容,虛擬機其實是不支持泛型,所以Java實現的是一種 僞泛型機制,也就是說Java在編譯期擦除了所有的泛型信息,這樣Java就不需要產生新的類型到字節碼, 所有的泛型類型最終都

原创 23. java虛擬機總結-和OOM相關的 (六)

垃圾回收算法 可達性分析法(根搜索算法,GC ROOTS) 從 GC Roots 向下追溯、搜索,會產生一個叫作 Reference Chain 的鏈條。當一個對象不能和任何一個 GC Root 產生關係時,就會被無情的誅殺掉。 如圖所示,

原创 26. java虛擬機總結-垃圾回收器-G1(九)

G1 的回收原理是什麼?爲什麼 G1 比傳統 GC 回收性能好? 爲什麼 G1 如此完美仍然會有 ZGC? CMS 垃圾回收器的一個極端場景(而且是經常發生的場景) 在發生 Minor GC 時,由於 Survivor 區已經放不下了,