国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Kotlin是如何做的 之單例

2019-11-08 18:40:23
字體:
來源:轉載
供稿:網友

kotlin引入了比較多的特性, 特性多其實并不代表就是好的, 我們在用的時候需要了解它究竟是如何實現的. 以object declaration定義單例為例.

在Singleton.kt文件中定義一個單例Singleton, 以及一個main方法

//Singleton.ktobject Singleton {}fun main(args: Array<String>) { PRintln(Singleton)}

編譯成字節碼以后, 使用jd-gui(下載)查看, 發現被編譯成兩個class文件. Singleton.class和SingletonKt.class, 內容分別如下.

//Singleton.classpublic final class Singleton{ public static final Singleton INSTANCE; //類的加載最后一步是初始化,即對類的靜態變量和靜態代碼塊執行初始化工作, 這里的靜態代碼塊獲取一個Singleton()對象, 并賦值給INSTANCE靜態變量 static { new Singleton(); } private Singleton() { INSTANCE = (Singleton)this; }}//SingletonKt.classpublic final class SingletonKt{ public static final void main(@NotNull String[] args) { Intrinsics.checkParameterIsNotNull(args, "args"); Singleton localSingleton = Singleton.INSTANCE; System.out.println(localSingleton); }}

可以看出Kotlin實現單例, 和我們平時利用JVM加載類時保證類只初始化一次來生成單例是一樣的.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 余江县| 合水县| 呼和浩特市| 那坡县| 明星| 改则县| 南阳市| 阳江市| 泊头市| 兴化市| 天峨县| 鹤峰县| 兴仁县| 嘉义市| 尖扎县| 布尔津县| 兴城市| 高安市| 嵊州市| 万州区| 南汇区| 墨竹工卡县| 社会| 夹江县| 绥芬河市| 华蓥市| 浦县| 尉犁县| 昌都县| 基隆市| 禄丰县| 南宁市| 东安县| 比如县| 岳池县| 克拉玛依市| 东莞市| 合川市| 邢台市| 莱芜市| 湛江市|