1.
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
// TODO Auto-generated constructor stub
}
public static Singleton getInstance() {
return singleton;
}
}
2.
public class Singleton {
private static Singleton singleton = null;
private Singleton() {
// TODO Auto-generated constructor stub
}
// 해당 인스턴스는 완벽한 싱글턴이 안된다. 스레드 타이밍에 여러개의 인스턴스가생길 수 있다.
// public static Singleton getInstance() {
// if (singleton == null) {
// singleton = new Singleton();
// }
// return singleton;
// }
public static synchronized Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}
2번의 경우 객체를 생성 할 때 문제가 생성될 수 있기에 synchronized써서 완전한 싱글턴으로 만들어야 한다.