Будет ли собираться запись WeakHashMap, если значение содержит единственную сильную ссылку на ключ?

Мне нужно связать некоторые данные с ключом на время его жизни, поэтому я использую WeakHashMap . Однако вдобавок мне нужно получить ключ по соответствующему значению. Самый простой способ сделать это - придерживаться ссылки при создании значения:

public class Key {}

public class Value { 
    final public Key key;
    public Value(Key k) {
        key = k;
    }
}

Конечно, пока я использую Value в своей программе, его ключ не срабатывает. прочь. Однако, если больше нет ссылок ни на ключ, ни на его значение за пределами карты, будет ли он собран сборщиком мусора? Или это предотвращает сохранившаяся сильная ссылка в значении?

8
задан Alexey Romanov 8 November 2011 в 14:28
поделиться