Core - 2

В WeakHashMap используются WeakReferences. А почему бы не создать SoftHashMap на SoftReferences?


В WeakHashMap используются слабые ссылки (WeakReferences), а не мягкие ссылки (SoftReferences), поскольку у них разные особенности и применение. Слабые ссылки (WeakReferences) в Java означают, что объект, на который они ссылаются, может быть удален сборщиком мусора, если на него больше нет сильных ссылок. Если объект, на который указывает слабая ссылка, не имеет сильных ссылок, то он будет удален при следующем проходе сборщика мусора. Мягкие ссылки (SoftReferences), с другой стороны, означают, что объект, на который они ссылаются, будет удален сборщиком мусора только в том случае, если системе не хватает памяти и есть необходимость освободить ресурсы. Мягкие ссылки используются для кэширования или временного хранения объектов, которые могут быть удалены, если системе не хватает памяти, но в противном случае они могут оставаться в памяти. SoftHashMap на мягких ссылках не была включена в стандартную библиотеку Java, поскольку мягкие ссылки могут быть не так предсказуемыми в своем поведении, как слабые ссылки. Они могут дольше задерживаться в памяти, чем ожидалось, и это может привести к неэффективному использованию памяти. Вместо этого, если вам требуется использовать мягкие ссылки в своем коде, в Java есть класс SoftReference, который вы можете использовать для создания собственной реализации SoftHashMap, если это соответствует вашим потребностям.


Копировать ссылку