Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


Java: управление ресурсами


В JDK 1.2 для этих целей были добавлены несколько классов, самые интересные из них - WeakReference и SoftReference. Weak ("слабая") ссылка будет очищена, если на объект нет более "сильных" ссылок и объект попался под руку GC. Soft ("мягкая") ссылка будет очищена, если на объект нет обычных ссылок, и, к объекту не доступались по этой ссылке определённое время (эвристически рассчитываемое в зависимости от текущего окружения). Для кэширования лучше всего подходят ссылки типа Soft, т.к. в них учитывается частота обращения к объекту.

Непосредственно пользоваться этими ссылками не очень удобно, лучше написать контейнер с их использованием. Вот, например реализация класса SoftHashtable: import java.lang.ref.SoftReference; import java.util.Hashtable; public class SoftHashtable extends Hashtable { public SoftHashtable() {} public Object put(Object key,Object obj) { SoftReference ref = (SoftReference)super.put(key,new SoftReference(obj)); if( ref==null ) return null; return ref.get(); } public Object get(Object key) { SoftReference ref = (SoftReference)super.get(key); if( ref==null ) return null; return ref.get(); } public Object remove(Object key) { SoftReference ref = (SoftReference)super.remove(key); if( ref==null ) return null; return ref.get(); } } Этот класс является неполным, при желании Вы можете перекрыть остальные методы Hashtable. С помощью этого класса Вы уже можете легко организовать свой кэш объектов: private static Hashtable objCache = new SoftHashtable(); public SuperObject getObject(String key) { SuperObject o = (SuperObject)objCache.get(key); if( o==null ) { o = loadObject(key); objCache.put(key,o); } return o; } Таким образом, если GC обнаружит, что памяти осталось мало, а в кэше болтаются объекты, к которым давно никто не обращался, он сможет их почистить.

Другие статьи по теме:

- возможности языка java
- Java: русские буквы и не только...
- Java-приложение: заглянем внутрь
- Java: управление ресурсами
- почтовая программа - своими руками!


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами