Java/Kotlin单例懒汉式、饿汉式以及静态内部类

1、饿汉式

特点:好处是没有线程安全的问题,坏处是浪费内存空间。
Java>>
public class SingleInstance1 {
    private static SingleInstance1 instance;

    public SingleInstance1 getInstance(){
        if (instance == null) {
            synchronized (SingleInstance1.class) {
                if (instance == null) {
                    instance = new SingleInstance1();
                }
            }
        }
        return instance;
    }
}

Kotlin>>
object SingleTon {

}

2、懒汉式

特点:好处是没有内存空间浪费的问题,但是控制不好实际不是单例。

Java>>
public class SingleTon1 {
    private volatile static SingleTon1 instance;

    /**
     * 双重校验
     * 提供一个静态方法让外部调用
     * @return 类对象
     */
    public SingleTon1 getInstance(){
        if (instance == null) {
            synchronized (SingleTon1.class) {
                if (instance == null) {
                    instance = new SingleTon1();
                }
            }
        

你可能感兴趣的:(java,开发语言)