我們知道單例分為餓漢式、懶漢式,單例在我們開發(fā)中經(jīng)常用到,本篇內(nèi)容主講
public class JavaUtils {private static JavaUtils instance = null;
private JavaUtils() {}
public static JavaUtils getInstance() {if (instance == null) {instance = new JavaUtils();
}
return instance;
}
public void javaTest(){System.out.println("Java 懶漢式 單例模式");
}
}
2、Kotlin懶漢式單例模式class KotlinUtils private constructor() {companion object {val instance: KotlinUtils by lazy {KotlinUtils()
}
}
fun kotlinTest() {println("kotlin 懶漢式 單例模式")
}
}
以上實現(xiàn)的單例
但是在我們開發(fā)中經(jīng)常需要考慮線程安全的問題,對Java單例一般使用雙重檢驗鎖,kotlin中也提供了線程安全的實現(xiàn)方式
3、Java 同步懶漢式單例模式public class JavaSyncUtils {private volatile static JavaSyncUtils instance = null;
private JavaSyncUtils() {}
public static JavaSyncUtils getInstance() {if (instance == null) {synchronized (JavaSyncUtils.class){if (instance==null){instance = new JavaSyncUtils();
}
}
}
return instance;
}
public void javaTest(){System.out.println("Java 懶漢式 單例模式-雙重檢驗鎖");
}
}
4、Kotlin同步懶漢式單例模式class KotlinSyncUtils private constructor() {companion object {val instance: KotlinSyncUtils by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {KotlinSyncUtils()
}
}
fun kotlinTest() {println("kotlin 懶漢式 單例模式-雙重檢驗鎖")
}
}
mode = LazyThreadSafetyMode.SYNCHRONIZED kotlin已經(jīng)對同步安全進行封裝
同步單例:
JavaUtils.getInstance().javaTest()
JavaSyncUtils.getInstance().javaTest()
println()
KotlinUtils.instance.kotlinTest()
KotlinSyncUtils.instance.kotlinTest()
Java 懶漢式 單例模式
Java 懶漢式 單例模式-雙重檢驗鎖
kotlin 懶漢式 單例模式
kotlin 懶漢式 單例模式-雙重檢驗鎖
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享標題:Kotlin之單例模式-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://chinadenli.net/article28/peicp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、域名注冊、靜態(tài)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站維護、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)