ясный () методы в Java

Я не сделал разработки SWING начиная со своих ранних классов CS, но если бы она не была создана в Вас, то мог бы просто наследовать javax.swing.AbstractButton и создать Ваше собственное. Должно быть довольно просто соединить что-то проводом вместе с их существующей платформой.

5
задан Joachim Sauer 11 November 2009 в 20:03
поделиться

5 ответов

На них больше не ссылается Коллекция, но если у вас есть какие-либо ссылки где-либо в вашем коде, эта ссылка продолжает существовать, как и была.

Как уже упоминалось, источник Vector вызывает:

// Let gc do its work
for (int i = 0; i < elementCount; i++)
    elementData[i] = null;

Однако это устанавливает для внутренней ссылки значение null (передача по значению) и не влияет на внешние ссылки.

9
ответ дан 18 December 2019 в 06:12
поделиться

Они не обнуляются - в этом нет смысла, только ссылка становится нулевой, а не значение - они просто разыменовываются . Если у них нет другой ссылки на него (например, другой класс, имеющий ссылку на статическую переменную или переменную экземпляра), то они будут иметь право на сборщик мусора.

8
ответ дан 18 December 2019 в 06:12
поделиться

Если на них нет ссылок из других источников, они будут собраны мусором.

5
ответ дан 18 December 2019 в 06:12
поделиться

Если есть сомнения, вы можете просто взглянуть на исходный код - это в комплекте с JDK (обычно в файле с именем rt.zip ).

public void clear() {
    removeAllElements();
}

public synchronized void removeAllElements() {
    modCount++;
    // Let gc do its work
    for (int i = 0; i < elementCount; i++)
        elementData[i] = null;

    elementCount = 0;
}

Комментарий «Пусть gc выполняет свою работу» взят из фактического источника, а не из моего.

3
ответ дан 18 December 2019 в 06:12
поделиться
//Let gc do its work
for (int i = 0; i < elementCount; i++) 
    elementData[i] = null;

Это код с комментарием из класса Vector. Думаю, это ответ на вопрос.

1
ответ дан 18 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: