原创 20200306

- 好久沒上簡書了,發現簡書都改成另一番模樣了,曾經認識的筆友,不知現在過得怎樣。- 我記得之前簡書還能兌20多塊,現在只能兌10多塊了。- 回顧自己的文章,滿滿都是回憶。- 還是回到以前積極奮鬥的樣子,花點時間在自我總結上,安排!- 已經

原创 Java知識總結之線程安全與數據同步 1 synchronized 2 程序死鎖的原因及其診斷

1 synchronized synchronized關鍵字可以實現一個簡單的策略來防止干擾和內存一致性錯誤,如果一個對象是對多個線程是可見的,那麼對該對象的所有讀或寫都將通過同步的方式來進行. synchronized 關鍵字提供了一種

原创 我的MarkDown寫作工具 何爲MarkDown? 爲何用MarkDown? md編輯器 我用有道雲筆記免費版,我想貼圖片怎麼辦?

何爲MarkDown? 簡而言之,Markdown語言是HTML的遠房親戚。是一種簡化版的標記語言,更適合於寫作。 習慣簡稱md,輸出的文本文件以md爲後綴。 爲何用MarkDown? 你看的大多數博客(甚至是書籍)都是用md寫的,包括g

原创 Retrofit源碼解讀 1 簡介 2 Retrofit組成:

1 簡介 提供給使用者的接口類:Retrofit Retrofit用註解的方式爲HTTP接口適配了帶有回調的java接口,通過這些java接口可以實現HTTP請求。 本文Retrofit版本:2.6.0 2 Retrofit組成: 2.1

原创 Android源碼之AsyncTask 參考 1 AsyncTask簡單用法 2 源碼解讀 大致類關係圖 結語

參考 本文源碼版本:Pie 9.0.0_r3 在線源碼地址:AsyncTask.java 1 AsyncTask簡單用法 // 三個泛型參數分別代表傳入的參數類型,任務執行過程需要更新的數據類型,任務執行結束返回的結果類型,如果無類

原创 Java知識總結之線程池 1 線程池原理 2 線程池具體實現

1 線程池原理 所謂線程池,就是有一個池子,裏面存放着已經創建好的線程,當有任務提交個線程池執行時,池子中的某個線程會主動執行該任務.如果池子中的線程不夠應付數量衆多的任務時,則需要自動擴充新的線程到池子中,但是該數量是有限的;當任務較少

原创 Java知識總結之線程池

1 線程池原理 所謂線程池,就是有一個池子,裏面存放着已經創建好的線程,當有任務提交個線程池執行時,池子中的某個線程會主動執行該任務.如果池子中的線程不夠應付數量衆多的任務時,則需要自動擴充新的線程到池子中,但是該數量是有限的;當任務較少

原创 Java知識總結之Thread

1 線程的生命週期 每個線程都有自己的局部變量表、程序計數器以及生命週期。 上圖就時一個線程的生命週期圖,答題可以分爲5個主要階段: NEW RUNNABLE RUNNING BLOCKED TERMINATED 1.1 NEW狀態

原创 Java知識總結之線程安全與數據同步

1 synchronized synchronized關鍵字可以實現一個簡單的策略來防止干擾和內存一致性錯誤,如果一個對象是對多個線程是可見的,那麼對該對象的所有讀或寫都將通過同步的方式來進行. synchronized 關鍵字提供了一種

原创 java源碼之Runnable、Callable和Future

在java併發編程中,幾乎都會用到Runnable、Callable、Future和FutureTask等類或接口,所以理解它們的概念和關係,對設計併發業務和源碼閱讀會有很大幫助。 1 Runnable public interface R

原创 Android源碼之AsyncTask

參考 本文源碼版本:Pie 9.0.0_r3 在線源碼地址:AsyncTask.java 1 AsyncTask簡單用法 // 三個泛型參數分別代表傳入的參數類型,任務執行過程需要更新的數據類型,任務執行結束返回的結果類型,如果無類

原创 Android源碼handler機制之Message

1 源碼註釋 // 定義一個包含描述和任務數據對象的message,且message能被handler發送,這個對象包含兩個extra int域和一個extra object域,它們能讓你在很多情況下不必做分配工作。 // 雖然Messag

原创 Retrofit源碼解讀

1 簡介 提供給使用者的接口類:Retrofit Retrofit用註解的方式爲HTTP接口適配了帶有回調的java接口,通過這些java接口可以實現HTTP請求。 本文Retrofit版本:2.6.0 2 Retrofit組成: 2.1

原创 java知識總結之Type

參考 Java中的Type Type是Java 編程語言中所有類型的公共高級接口(官方解釋),也就是Java中所有類型的“爹”,它並不是我們平常工作中經常使用的 int、String、List、Map等數據類型,而是從Java語言角

原创 NDK開發筆記之2:AndroidStudio3.3+Cmake+JNA例子

1 參考 Java本地接口 Android NDK官方文檔 JNI的替代者—使用JNA訪問Java外部功能接口 GitHub:java-native-access/jna 2 JNI與JNA 2.1 JNI JNI(Java Nati