public class SingletonDemo {
public static void main(String[] args) {
//饿汉式
Singleton1 singleton1 = Singleton1.getInstance();
singleton1.print();
//懒汉式
Singleton2 singleton2 = Singleton2.getInstance();
singleton2.print();
}
}
//饿汉式
class Singleton1{
private static Singleton1 singleton = new Singleton1();
private Singleton1() {
}
public static synchronized Singleton1 getInstance() {
return singleton;
}
public void print() {
System.out.println("单例模式:饿汉式");
}
}
//饿汉式
class Singleton2{
private static Singleton2 singleton = null;
private Singleton2() {}
public static Singleton2 getInstance() {
if (singleton == null) {
singleton = new Singleton2();
}
return singleton;
}
public void print() {
System.out.println("单例模式:懒汉式");
}
}