/*第一步:把构造方法私有
* 第二步:在成员位置自己创建一个对象
* 第三步:通过一个公共的方法提供访问
*
*/
public class Singleton {
public static void main(String[] args) {
Printer p1 = Printer.getPriner();
Printer p2 = Printer.getPriner();
System.out.println(p1 == p2);
}
}
/*
* 需求:让一个类只能产生一个对象 synchronized —>锁
*/
//懒汉式
class Printer {
private static Printer p = null;
private Printer() {
}
public synchronized static Printer getPriner() {
if (p == null) {
p = new Printer();
}
return p;
}
}
// 饿汉式 占内存
class Teacher {
private static Teacher t = new Teacher();
private Teacher() {
}
public synchronized static Teacher getTeacher() {
return t;
}
}