私は、シングルトンオブジェクトと同時呼び出しイベントを扱うときに遭遇する可能性のある非常に具体的な状況に関するいくつかの質問があります。メソッドローカル変数はどこに保存されていますか?
私は何とか私のことに関連する質問があることは知っていますが、私が知りたいと思うものではありません。 (例:Concurrently invoking Java method of singleton object)
言ってやる例えば、私は次のコードを持っている:私はこれと同じクラスのインスタンス私は日に何が起こるか知りたい何度も呼び出していた中での同時シナリオで
public class MyClass{
private static MyClass myInstance = new MyClass();
private new MyClass() {}
public MyClass getInstance(){
return myInstance;
}
public String doSomething(String message){
java.util.Date d = new java.util.Date();
System.out.println(message);
System.out.println("Today is: " + d);
}
}
をd
変数は、メモリを賢明に、それはgetInstance()を呼び出すすべての人のための別のメモリスタックに格納されますか?doSomething()?
クラスインスタンスは静的なので、私は理解していますが、変更可能なグローバル変数はありません。別のプロセスのための別のd
オブジェクトを作成する必要があります。
誰かがこの部分を明確にしてください。
「シングルトン」と「オブジェクト」はこの質問とは関係ありません。あなたはJavaがローカル変数をどこに置くかを尋ねています。答えは「スレッドスタック」です。 – EJP