これは、マルチスレッド アプリで使用するために、常にスレッド セーフなシングルトンを作成する方法です。
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
}
}
彼らはもう一方については言及していません。
何が良いですか?そして、2つのソリューションの違いは何ですか?