Так я всегда создавал потокобезопасный синглтон, чтобы использовать его в многопоточном приложении.Решающее решение для однопоточного и внутреннего класса
public class Logger {
private Logger() {}
private static Logger instance = new Logger();
public static Logger getInstance() {
return instance;
}
public void log(String s) {
// Log here
}
}
Сегодня я учился брать мой сертификат Java и книги, которую я нашел другое решение:
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
}
}
Они не упоминают о другой.
Что лучше? И в чем разница между двумя решениями?