Пример
Вот простой пример: пример, где есть две переменные A и B, обе ссылаются на ONE. Значение value инвертируется перед первым использованием B. Если бы сборщик мусора избавился от экземпляра ONE перед строкой Number B = Number.ONE;, то значение value было бы «сброшено» обратно на 1, Я полагаю. Это правильно?
Перечисление:
Код: Выделить всё
public enum Number
{
ONE(1), TWO(2), THREE(3);
int value;
Number(int value) { this.value = value; }
void negate() { value = -value; }
@Override
public String toString() { return "value: " + value; }
}
Код: Выделить всё
public static void main(String[] args)
{
Number A = Number.ONE;
A.negate();
Number B = Number.ONE;
System.out.println(A + " " + B);
}
значение: -1 значение: -1
Поэтому мой вопрос заключается в том, может ли результат когда-либо быть следующим (если, скажем, A = null; добавляется перед использованием B)?
значение: -1 значение: 1
< /blockquote>
Подробнее здесь: https://stackoverflow.com/questions/313 ... m-instance
Мобильная версия