この2つのクラスは同じですか?
public class SingleTone {
// yes this is a bug what if i change the class this way
// private static SingleTone instance = new SingleTone();
// and empty constructor?
private static SingleTone instance;
private SingleTone() {
instance = new SingleTone();
}
public static SingleTone getInstance(){
return instance;
}
}
と
public class SingleTone {
private final static SingleTone instance = new SingleTone();
private SingleTone() {
}
public static SingleTone getInstance(){
return instance;
}
}
コンストラクターによってインスタンス化された最終変数にスレッドセーフの問題はありますか?
質問2:
違いは何ですか
private final static SingleTone instance = new SingleTone();
private SingleTone() {
}
この:
private final static SingleTone instance;
private SingleTone() {
instance = new SingleTone();
}