java中可能会遇到对象只需创建一个的情况来节省内存空间,所以诞生出了单例模式,单例模式分为饿汉式和懒汉式两种,饿汉式就是在类初始化时直接创建一个对象,而懒汉式是在需要使用对象时才创建一个对象。但是懒汉式是线程不安全的。
package day7;
//饿汉式
public class SingletonDemo {
public static void main(String[] args) {
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
System.out.print(s1==s2);
}
}
class Singleton{
//把构造方法是优化,不允许外界在创建对象
private Singleton(){};
private static Singleton instance=new Singleton();
public static Singleton getInstance(){
return instance;
}
}
package day7;
//懒汉式
public class SingletonDemo2 {
public static void main(String[] args) {
Singleton2 s1=Singleton2.getInstance();
Singleton2 s2=Singleton2.getInstance();
System.out.print(s1==s2);
}
}
class Singleton2{
//把构造方法是优化,不允许外界在创建对象
private Singleton2(){};
private static Singleton2 instance;
public static Singleton2 getInstance(){
if(instance==null){
instance=new Singleton2();
}
return instance;
}
}