|
Java: управление ресурсамиСтатья подходит для начинающих Java программистов, так как они не всегда четко представляют как нужно управлять ресурсами. В статье содержится подробное описание и множество наглядных примеров.Управление ресурсами. Как я заметил, многие, начинающие программировать на Java, не вполне чётко представляют себе, как следует управлять ресурсами на этом языке. В данной статье я попытался изложить своё видение на этот аспект программирования. Что может, а чего не может GC. Одним из особенностей языка Java является автоматическая сборка мусора - пресловутый Garbage Collector (сокращённо - GC). GC - это фоновый процесс, который занимается поиском и освобождением неиспользуемых объектов. Много копий было сломано в дискуссиях, хорошо это или плохо, причём существенные аргументы есть как у сторонников, так и у противников этой технологии. Но я не об этом. Примем существование GC как данность и рассмотрим особенности программирования в данной среде. Одним из следствий наличия GC (и отсутствия размещения объектов в стеке) является отсутствие деструкторов, аналогичным существующих в C++ - автоматически вызываемых методов для уничтожения объектов по выходу из области видимости. Вместо них есть другие механизмы, которые позволяют добиться того же самого. Другим следствием является необходимость следить за ссылками на объекты, потому как GC именно по наличию ссылки на объект определяет его нужность. Для возможности управления строгостью ссылок в JDK 1.2 был введён новый пакет java.lang.ref, классы которого позволяет создавать так называемые "слабые" ссылки на объекты. Это особенно полезно для реализации кэширования объектов. Начитавшись рекламных статей, может показаться, что очисткой ресурсов вообще не стоит заниматься - всё сделает GC. Тут важно понимать, что в понятие ресурсов входит не только оперативная память, но так же и многое другое. Например - открытые файлы, сокеты, ResultSet-ы и Statement-ы в JDBC, и т.д. С очисткой памяти GC в последних JVM справляется довольно неплохо, но вот освобождение других ресурсов, как правило, нельзя делать асинхронно. В противном случае легко получить так называемые "плавающие" ошибки, которые то появляются, то исчезают. Другие статьи по теме: - возможности языка java- учим java. этап первый: подготовительный - почтовая программа - своими руками! - поисковая оптимизация как вид деятельности - Java-приложение: заглянем внутрь |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |