이것은 멀티 스레드 응용 프로그램에서 사용하기 위해 항상 스레드 안전 싱글 톤을 만든 방법입니다. 내가 공부스레드 안전 싱글 톤 및 내부 클래스 솔루션
public class Logger {
private Logger() {}
private static Logger instance = new Logger();
public static Logger getInstance() {
return instance;
}
public void log(String s) {
// Log here
}
}
오늘은 내 자바 인증을하고 책에 나는이 다른 해결책을 발견 :
public class Logger {
private Logger() {}
private static Logger instance;
private static class LoggerHolder {
public static Logger logger = new Logger();
}
public static Logger getInstance() {
return LoggerHolder.logger;
}
public void log(String s) {
// Log here
}
}
그들은 다른 하나에 대해 언급하지 않는다.
무엇이 더 좋습니까? 두 솔루션의 차이점은 무엇입니까?