230704 TIL #128 기술 면접 스터디 - JAVA 3

김춘복·2023년 7월 4일
0

TIL : Today I Learned

목록 보기
128/543
post-custom-banner

230704 Today I Learned

신경써서 과제를 제출했던 코*은 탈락했지만, 대기업 한 군데 코테를 붙었다. 아직 많이 보진 않았지만 코테 통과는 이번이 처음이라 뿌듯하다. 일주일 후 면접인데 진짜 어떻게든 붙고 만다.. 면접 준비 빡세게 해보자!!


스프링 없이 순수 자바로만 싱글톤 객체 만들어보세요.

public class Singleton {
    private static Singleton instance;
	
    // private 생성자로 외부에서의 객체 생성 방지
    private Singleton() {
    }

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
    // 기능구현..
}
//-------------------------------------
public class Main {
    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        Singleton singleton2 = Singleton.getInstance();

        System.out.println(singleton1 == singleton2); // true
    }
}
  • private 생성자를 갖고있기 때문에 외부에서 이 객체를 생성할수 없다. 필드에서 private static 변수로 본인 객체의 인스턴스를 하나 갖고 있다. getInstance 메서드로 인스턴스가 없을때만 하나 만들어서 쓰도록 한다. synchronized를 써서 멀티스레드에서도 동기화를 보장한다.
profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글