目录

单例模式

# 单例模式

  1. 饿汉式
  2. 懒汉式

# 饿汉式

思想:

  1. 创建类的私有构造器
  2. 创建类的私有对象属性
  3. 创建类的公开获取方法
public class SingletonClass {  
    private static SingletonClass sc = new SingletonClass();  
    private SingletonClass(){  
  
    }  
    public static SingletonClass getInstance(){  
        return sc;  
    }  
}
1
2
3
4
5
6
7
8
9

# 区别

由于Static关键词的特性,饿汉式会在类加载时被调用生成一个单例,如

public class SingletonClass {  
    private static SingletonClass sc = new SingletonClass();  
    public static int num = 10;  
    private SingletonClass(){  
        System.out.println("called...");  
    }  
    public static SingletonClass getInstance(){  
        return sc;  
    }  
}
1
2
3
4
5
6
7
8
9
10

当用户只是调用SingletonClass.num时,单例也会被生成,但由于一直不用,会导致占用内存空间,因此对于需要消耗庞大资源构建的单例而言,饿汉式是多余的。

饿汉式不存在线程安全问题,懒汉式存在线程安全问题

最近更新
01
基本知识
07-18
02
卷积神经网络识别图像
07-18
03
损失函数
07-18
更多文章>