Кэширование. Мы широко используем его внутри Codename One для кеширования вещей, которые могут вызвать утечку памяти, например, изображений. Это уменьшает перегрузку памяти, поскольку некоторые изображения могут избежать сбора G C, если они все еще необходимы до того, как произойдет цикл G C.
Хорошим примером этого является EncodedImage
, который очень эффективен. Он хранит только сжатые данные PNG / JPEG в жесткой справке, но загружает изображение, когда оно нам нужно. Эта ссылка сохраняется в слабой / мягкой ссылке. Обратите внимание, что этот класс может находиться в «заблокированном» режиме, в котором ссылка хранится как жесткая ссылка (это не будет G C 'd) по соображениям производительности.