单例是面试题中经常考的,需要手写出来,只是下列的太简单了,面试会不及格的
饿汉式单例,一开始就new一个新的Calendar(),这个类是自己写的,不是java自带的日历类,不要混为一谈了
public class Calendar {
private final static Calendar CALENDAR = new Calendar();
private Calendar(){ }
public static Calendar getInstance(){
return CALENDAR;
}
}
懒汉式单例,一开始只是新建一个静态变量,并不对其进行初始化
public class Singleton {
// 需要一个静态的成员变量保存咱们的实例
private static Singleton SINGLETON;
// 私有化构造器,不让外边new
private Singleton(){ }
// 持有一个方法,这个方法能返回内存当中的实例
public static Singleton getInstance(){
if (SINGLETON == null){
SINGLETON = new Singleton();
}
return SINGLETON;
}
}
测试类:
public class Test {
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
Singleton singleton = Singleton.getInstance();
}
}