Этот вопрос о понимании документации Java для WeakReferenceПротиворечие в документации Java WeakReference в
Когда я прочитал о WeakReference Java, я наткнулся на это предложение в документации:
Предположим, что сборщик мусора определяет в какой-то момент в время, когда объект слабо доступен. В то время это будет атомарно удалить все слабые ссылки на этот объект и все слабые ссылок на любые другие слабо достижимые объекты, из которых что объекта достижим через цепь сильных и мягкие ссылки
Но это Безразлично Для меня это имеет смысл. Предположим, что у меня есть WeakReference wrA, ссылающийся на объект A и другой WeakReference wrB, ссылающийся на объект B. И B сильно ссылается на A (прямо или косвенно через цепочку). Теперь, согласно документу, если A становится слабо доступным, и если B в то время уже слабо доступен, тогда wrB будет очищен вместе с wrA. Однако, так как B уже слабо достижимо в это время, не следует ли сначала очищать wrB в то время, когда обнаруживается слабая достижимость B?
* Потому что B уже слабо доступен в это время * - Этот факт, возможно, до сих пор не обнаружен, нет? – aioobe
Это может быть хорошей идеей перефразировать, поскольку кажется трудным получить, где именно проблема. – h22