Почему не генерируется исключение NullPointerException, если для экземпляра класса Statics установлено значение null? Я понимаю, что статическая переменная распределяется между всеми экземплярами, и их всего одна копия. Означает ли это, что статические переменные не живут в куче? Ну, я думаю, это то, что он подразумевает?Где статические члены живут, если не на куче?
Таким образом, я думаю, что более большой вопрос заключается в том, где живут статические переменные/методы?
Рассмотрим следующий пример:
public class Statics {
public static int count = 0;
public static void main(String[] args){
System.out.println(Statics.count);
}
}
public class StaticsTest {
public static void main(String[] args){
Statics t1 = new Statics();
t1 = null;
System.out.println(t1.count); //Output of zero was printed which I didn't expect.
}
}
Если они не живут в куче, я предполагаю, что они не получают мусора?
Счетчик записей является статическим. – Emd4600