以下のコードの出力について説明が必要です。
class Stats
{
static int a = 10;
int b = 20;
void printMe()
{
System.out.println(a+b);
}
}
public class Static
{
public static void main(String args[])
{
Stats s1 = new Stats();
Stats s2 = new Stats();
s1.b = 30;
s1.printMe();
s1.a = 20;
s2.printMe();
}
}
出力: 40 40
参照「s1」を介して20に変更される静的変数「a」のコピーが1つだけあるはずなので、40と50になると予想しました。