Kotlin单例类

什么是单例类?

单例类是在全局上只能创建一个实例的类,其可避免创建重复对象。

单例类实现

Java实现:

java 复制代码
public calss Singleton {

    private static Singleton instance;

    private Singleton() {}

    public synchronized static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

    public void singletonTest() {
        System.out.println("The singleton instance has been created successfully!")
    }
}

/*synchronized关键字用于控制对代码块或方法的访问,
以确保在同一时间只有一个线程可以执行特定代码段。
这主要用于实现线程同步,
防止多个线程同时访问共享资源而导致的数据不一致问题。*/

Kotlin实现:

Kotlin 复制代码
object Singleton {}    //Kotlin中单例类的实现是全自动的,如此便已是一个单例类

object Singleton {
    fun singleTest() {
        println("The singleton instance has been created successfully!")
    }
}
相关推荐
小二·1 分钟前
Go 语言系统编程与云原生开发实战(第20篇)
开发语言·云原生·golang
女王大人万岁1 分钟前
Golang实战Eclipse Paho MQTT库:MQTT通信全解析
服务器·开发语言·后端·golang
无限进步_2 分钟前
138. 随机链表的复制 - 题解与详细分析
c语言·开发语言·数据结构·算法·链表·github·visual studio
charlie1145141913 分钟前
嵌入式C++教程——Lambda捕获与性能影响
开发语言·c++·笔记·嵌入式·现代c++·工程实践
codeejun5 分钟前
每日一Go-24、Go语言实战-综合项目:规划与搭建
开发语言·后端·golang
weiabc6 分钟前
cout << fixed << setprecision(2) << v; fixed 为什么不用括号,它是函数吗
开发语言·c++·算法
昱宸星光8 分钟前
spring cloud gateway内置路由断言工厂
java·开发语言·前端
m0_531237178 分钟前
C语言-内存函数
c语言·开发语言·算法
迷之程序员8 分钟前
llama-cpp-python用法,模型加载gpu踩坑全记录
开发语言·python·llama
yongui478349 分钟前
基于C#实现视频文件解封装与媒体流读取方案
开发语言·c#·媒体