Я пытаюсь выяснить, как WeakHashMap очищается после сбора одежды.Как многие из вас могут знать, запись WeakHashMap удаляется автоматически, когда ее ключ становится сборщиком мусора.Но, например, если я сделаю что-то вроде этого:
List<WeakReference<Main>> list = new ArrayList<>();
list.add(new WeakReference<>(new Main()));
System.gc();
Thread.sleep(1000);
list.get(0).get(); //null - WeakReference referent has been removed
list.get(0); //empty WeakReference object is still present in the List
ArrayList не очищает пустые объекты WeakReference, но почему WeakHashMap делает?Какой компонент отвечает за автоматическое удаление записи.В исходниках WeakHashMap я не вижу кода, который мог бы это сделать.