Kotlin之單例模式-創(chuàng)新互聯(lián)

我們知道單例分為餓漢式、懶漢式,單例在我們開(kāi)發(fā)中經(jīng)常用到,本篇內(nèi)容主講

成都創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比太和網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式太和網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋太和地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴(lài)。懶漢式單例模式
    • 1、Java 懶漢式單例模式
    • 2、Kotlin懶漢式單例模式
    • 3、Java 同步懶漢式單例模式
    • 4、Kotlin同步懶漢式單例模式
    • 5、單例調(diào)用測(cè)試

1、Java 懶漢式單例模式
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 懶漢式 單例模式")
    }
}

以上實(shí)現(xiàn)的單例

  • 優(yōu)點(diǎn):延遲到使用時(shí)才進(jìn)行初始化,提高了類(lèi)加載的性能
  • 缺點(diǎn):非線程安全,多個(gè)線程同時(shí)訪問(wèn)情況下,會(huì)創(chuàng)建多個(gè)實(shí)例

但是在我們開(kāi)發(fā)中經(jīng)常需要考慮線程安全的問(wèn)題,對(duì)Java單例一般使用雙重檢驗(yàn)鎖,kotlin中也提供了線程安全的實(shí)現(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 懶漢式 單例模式-雙重檢驗(yàn)鎖");
    }

}
4、Kotlin同步懶漢式單例模式
class KotlinSyncUtils private constructor() {companion object {val instance: KotlinSyncUtils by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {KotlinSyncUtils()
        }
    }

    fun kotlinTest() {println("kotlin 懶漢式 單例模式-雙重檢驗(yàn)鎖")
    }
}

mode = LazyThreadSafetyMode.SYNCHRONIZED kotlin已經(jīng)對(duì)同步安全進(jìn)行封裝

同步單例:

  • 優(yōu)點(diǎn):1、延遲到使用時(shí)才進(jìn)行初始化,提高了類(lèi)加載的性能、2、在創(chuàng)建對(duì)象的語(yǔ)句塊中使用了同步鎖synchronized,保證線程安全的同時(shí),降低了鎖的作用范圍
  • 缺點(diǎn):需要1-2次的空判斷
5、單例調(diào)用測(cè)試
JavaUtils.getInstance().javaTest()
JavaSyncUtils.getInstance().javaTest()
println()
KotlinUtils.instance.kotlinTest()
KotlinSyncUtils.instance.kotlinTest()
Java 懶漢式 單例模式
Java 懶漢式 單例模式-雙重檢驗(yàn)鎖

kotlin 懶漢式 單例模式
kotlin 懶漢式 單例模式-雙重檢驗(yàn)鎖

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享標(biāo)題:Kotlin之單例模式-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.muchs.cn/article28/peicp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站域名注冊(cè)、靜態(tài)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站維護(hù)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管