让类只能产生一个实例对象(单例模式)-->SingletonTest.java
1)构造器私有
2)本类中提前构建对象
3)static公共操作返回本类对象
/*
* 饿汉式
*/
class Singleton{
//构造器私有
private Singleton(){}
//在本类提供一个实例对象
private static Singleton s = new Singleton();
//通过静态方法将实例对象暴露
public static Singleton getInstance() {
return s;
}
}
public class SingletonTest {
public static void main(String[] args) {
//外界只能通过静态方法拿到实例对象
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
//拿到的实例对象永远都是同一个
System.out.println("s1:" + s1);
System.out.println("s2:" + s2);
}
}
/*
* 懒汉式
*/
class Singleton{
//构造器私有
private Singleton(){}
//在本类提供一个实例对象
private static Singleton s;
//通过静态方法将实例对象暴露
public static Singleton getInstance() {
if(s==null) {
s = new Singleton();
}
return s;
}
}
public class SingletonTest {
public static void main(String[] args) {
//外界只能通过静态方法拿到实例对象
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
//拿到的实例对象永远都是同一个
System.out.println("s1:" + s1);
System.out.println("s2:" + s2);
}
}