[JAVA] 싱글톤(SingleTon)

민기·2022년 3월 27일
0

오늘은 싱글톤에 대해서 알아보겠다.
싱글톤이란 ? 객체를 하나만 생성하는것
즉, 여러객체를 만들어도 객체 하나로 통일하여 쓴다는것이다.
MySingletonTest.java

public class MySingletonTest {

	public static void main(String[] args) {
		MySingleTon a = MySingleTon.getInstance(); 
		MySingleTon a2 = MySingleTon.getInstance(); 
		System.out.println(a==a2);
		System.out.println(System.identityHashCode(a));
		System.out.println(System.identityHashCode(a2));
	}

}

MySingleTon.java

public class MySingleTon {
	private static MySingleTon single;
	private MySingleTon(){
		
	}
	
	
	public static MySingleTon getInstance() {
		if(single == null)
			single = new MySingleTon();
		return single;
	}
}

위에서 보면 알 수 있듯이 main에서 a와 a2를 만들었다. 여기서 생성자를 받지 않고 바로 getInstance()를 호출하였다. 그럼 getInstance()를 들여다보자 single이 null이면 Default생성자를 호출하였다. 하지만 null이 아닐경우엔 그냥 single을 반환한다. 이를 해석하면 처음 null경우에만 생성자를 호출하고 그다음부턴 null이 되기 전까진 생성자를 호출하지 않는다는 것이다.

어.. 그래서 일단 결과로 주소가 같은지, identityHashcode를 찍어보면

같은걸 볼 수 있다!

profile
매일 한걸음씩 나아가는 꾸준한 개발 블로그

0개의 댓글

관련 채용 정보