자바 싱글톤
class Single{
public int x = 100;
static Single single = new Single();
private Single(){} // private으로 생성자.
public static Single getInstance(){
return single;
}
}
public class SingleEx {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Single s1 = new Single(); 오류.
Single s1 = Single.getInstance();
System.out.println(s1);
Single s2 = Single.getInstance();
System.out.println(s2);
System.out.println(s1.x);
System.out.println(s2.x);
s1.x = 200;
System.out.println(s1.x);
System.out.println(s2.x);
}
}
동일한 메모리 주소
100
100
200
200
객체는 처음 한번만 new로 생성이 된다.
그 다음 객체들은 처음 생성된 객체의 참조자를 따라 간다.
그래서, 두번 세번 객체를 만들고 값을 변경해도 그 이전의 객체들의 값도 모두 변경이 된다.
다른 패키지 및 파일에서도 동일하게 변경 된다.
C++의 개념과 살짝 다르다.
사용예가 DB커넥션 데이터들의 동기화시에 사용하면 편리하다.
여러개 만들어 두고 동일한 값을 사용 해야 할 경우 !