Как использовать WeakReference в разработке Android и Java?

Я был Java-разработчиком в течение 2 лет.

Но я, никогда не имею не писал WeakReference в моем коде. Как использовать WeakReference для подавания моей заявки, более эффективной особенно приложение Android?

159
задан AADProgramming 25 April 2015 в 17:29
поделиться

1 ответ

Использование WeakReference в Android ничем не отличается от использования его в простой старой Java. Вот отличное руководство с подробным объяснением: Общие сведения о слабых ссылках .

Вам следует подумать о том, чтобы использовать его всякий раз, когда вам нужна ссылка на объект, но вы не хотите, чтобы эта ссылка защищала объект от сборщика мусора. Классическим примером является кэш, который вы хотите собирать мусором, когда использование памяти становится слишком высоким (часто реализуется с помощью WeakHashMap ).

Не забудьте также ознакомиться с SoftReference и PhantomReference .

РЕДАКТИРОВАТЬ: Том выразил некоторые опасения по поводу реализации кеширования с помощью WeakHashMap . Вот статья с описанием проблем: WeakHashMap не является кешем!

Том прав в том, что было жалоб на низкую производительность Netbeans из-за кэширования WeakHashMap .

Я по-прежнему думаю, что было бы неплохо реализовать кэш с WeakHashMap , а затем сравнить его с вашим собственным вручную созданным кешем, реализованным с помощью SoftReference . В реальном мире вы, вероятно, не стали бы использовать ни одно из этих решений, поскольку имеет смысл использовать стороннюю библиотеку, например Apache JCS .

224
ответ дан 23 November 2019 в 21:36
поделиться
Другие вопросы по тегам:

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