Javaでメンバー変数を揮発性として宣言する場合、これは、すべてのオブジェクトのデータが揮発性メモリに格納されることを意味しますか、それともオブジェクトへの参照が揮発性メモリに格納されることを意味しますか?
たとえば、次のクラスがある場合:
class C{
int i = 0;
char c = 'c';
}
そのインスタンスを次のように宣言すると、次のようになります。
private volatile C obj;
それはへの参照をobj
揮発性メモリに保存しますか、それともobj
のデータ(obj.i
およびobj.c
)をvolatile
メモリに保存しますか?
スレッドセーフにobj.c
なりobj.i
ますか?