20200204——java基础 单例模式
作者:互联网
所谓单例模式,就是采取一定的方法保证在整个的软件系统中,对某个类只存在一个实例对象,并且该类只提供一个取得其对象的实例的方法。如果我们要让类在一个虚拟机中只生产一个对象。我们首先必须将类的构造方法的访问权限设置为private,这样就不能用new操作符在类的外部生产类的对象,但是在类的内部仍可以生产该类的对象,因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。
/**
* @Classname TestSingleton
* @Description TODO
* @Date 2020/2/4 11:52
* @Created by mmz
*/
public class TestSingleton {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1);
System.out.println(s2);
}
}
class Singleton{
private Singleton(){
}
private static Singleton singleton = new Singleton();
public static Singleton getInstance(){
return singleton;
}
}
懒汉模式:可能存在线程安全问题
class Singleton1{
private static Singleton1 instance = null;
private Singleton1(){
}
public static Singleton1 getInstance(){
if(instance == null){
instance = new Singleton1();
}
return instance;
}
}
饿汉式就是自己在声明变量的时候,用构造方法new出来一个对象
宫城诗 发布了700 篇原创文章 · 获赞 40 · 访问量 6万+ 关注标签:Singleton,java,getInstance,对象,private,static,20200204,单例,Singleton1 来源: https://blog.csdn.net/qq_36344771/article/details/104167168