原创 爲什麼子線程都不能刷新UI?

1. 理論上的原因 1.1 Android主線程是線程不安全的? 網上文章常常有說:Android主線程是線程不安全的。我就納悶了,線程還有安全一說? 不能說主線程是線程不安全。線程沒有安全不安全這一說。而是更新UI的方法不是

原创 初識 Kotlin (一)

1. kotlin 文檔 官方文檔 kotlin 菜鳥教程 from-java-to-kotlin Kotlin-for-Android-Developers Bandhook-Kotlin Kotlin版本的音樂播放器,

原创 SharedPreference.Editor 的 apply 和 commit 方法異同

1. apply方法在 官方SDK說明 如下: Commit your preferences changes back from this Editor to the SharedPreferences object it is

原创 初識 Kotlin (六) ---- Kotlin 中的主構造方法和從構造方法

Kotlin的構造函數分爲主構造器(primary constructor)和次級構造器(secondary constructor)。下面我們來看看他們的寫法 1. Primary Constructor 1.1 寫法規則 cl

原创 深入解析 SharedPreferences

一. 概述 SharedPreferences 是Android中很常用的數據存儲方式,SP 採用 key-value形式, 主要用於: 輕量級的數據存儲, 尤其適合保存應用的配置參數 不建議使用SP 來存儲大規模的數據, 可

原创 初識 Kotlin (五) ---- Kotlin 中 的單例模式

六種單例模式 餓漢模式 懶漢模式 線程安全的懶漢模式 雙重校驗鎖式 靜態內部類式 枚舉式 1. 餓漢模式: static final field 既然餓,那麼在創建對象實例的時候就比較着急,於是在裝載類的時候就創建對象實例 這

原创 初識 Kotlin (二) ---- lateinit vs lazy

Kotlin Property Initialization 在使用 kotlin開發中,因爲各種原因,我們會經常需要使用到延遲加載的功能(不在構造函數中初始化屬性),目前kotlin的延遲加載主要有兩種:lateinit 和 l

原创 ButterKnife 源碼解析 (一)

文章目錄1. ButterKnife 的優勢2. APT 和 IoC 架構的區別3. ButterKnife 用法4. ButterKnife 原理4.1 代碼中簡單使用示例4.2 源碼分析4.3 再從生成的 MainActiv

原创 ButterKnife 源碼解析 (二)-- Java 文件結構化文本詳解

文章目錄1. APT (Annotation Processing Tool)2. 結構體語言2.1 PackageElement2.2 ExecuteableElement2.3 TypeElement2.4 Varia

原创 初識 Kotlin (三) ---- 零散的一些知識點

1. 如何定義靜態變量、方法 java public class Singleton{ private static Singleton instance = ...; public static Singl

原创 ButterKnife 源碼解析 (三) -- 手寫 ButterKnife 實現無性能損耗的編譯時框架

2. ButterKnife 爲什麼執行效率爲什麼比其他注入框架高? ButterKnife 使用了註解處理技術,可以自動生成相應代碼,一是爲了提高編碼的效率,二是避免在運行期大量使用反射,通過在編譯期利用反射生成輔助類和方法以供

原创 mybatis入門 (一)

1. 環境配置 環境搭建 demo idea創建maven,maven的GroupId,ArtifactId IDEA Maven配置 IDEA中Maven配置淺析 Intellij IDEA 添加jar包的三種方式 2. 整

原创 初識 Kotlin (四) ---- 獲取 Kotlin 中 class 的實例

Kotlin的類 class Lizi { var name: String = "" var age: Int = 0 companion object { } } 對於 Kotlin 的

原创 運行 .bat 腳本 命令行閃退

症狀 安裝 Tomcat 之後運行 startup.bat 命令行閃退 方案 打開 startup.bat 文件,在文件最後添加一行 pause,表示暫停,就可以看到命令行中的報錯信息了

原创 繼承和接口的區別,抽象類和接口的區別

文章目錄1. 繼承和接口的區別1.1 面向對象的角度1.2 繼承和接口使用上的區別示例2. 抽象類和接口之間的區別2.1 什麼是抽象類和接口2.2 特點與區別抽象類的特點接口的特點區別 主要需要解決的問題: 繼承和接口的區別