В языках с автоматическим управлением памятью сборщик мусора удаляет объекты, когда они перестают быть доступными по ссылкам. Обычно это именно то, что нужно: объект существует, пока есть возможность к нему обратиться.
Иногда такое поведение не подходит. Например, программе понадобилось хранить некоторую вспомогательную информацию об экземплярах некоторого класса, но у вас нет возможности добавить в этот класс своё поле. В этом случае можно создать отображение, в котором ключом будет объект, а значением — вспомогательная информация.
Вот тут-то и начинаются проблемы. Поскольку отображение хранит ссылки на ключи, те объекты, к которым была привязана вспомогательная информация, перестают освобождаться из памяти. Если программа в процессе своей работы создаёт много объектов, память рано или поздно заканчивается.Читать полностью »
Рубрика «java» - 267
Слабые ссылки в различных языках программирования
2012-12-25 в 14:11, admin, рубрики: c++, haskell, java, perl, python, ruby, Программирование, метки: c++, haskell, java, perl, python, ruby, ПрограммированиеСериализация GWT RPC в запрашиваемую страницу для индексирования приложения поисковиками и ускорения загрузки
2012-12-25 в 14:00, admin, рубрики: Google Web Toolkit, GWT, java, RPC, поисковая оптимизация, метки: GWT, java, RPC, поисковая оптимизация Как известно, поисковики не очень любят динамически создаваемые страницы, а страница (приложение) GWT как раз является динамической.
Читать полностью »
Использование фильтров из Box2D в Libgdx
2012-12-25 в 11:40, admin, рубрики: android, box2d, filter, game development, Gamedev, java, libgdx, Разработка под android, метки: android, Box2D, filter, Gamedev, libgdx В прошлой статье рассматривалась работа с ContactListener
. Вот только примеры, которые я использовал, были не совсем верно выбраны. В Box2D есть намного более удобные средства для фильтрации столкновений, а именно – фильтры. О них и напишу в этот раз.
Универсальный Солдат: Groovy Transformer в DataStage
2012-12-22 в 20:02, admin, рубрики: datastage, etl, groovy, java, sql, метки: datastage, etl, groovy, java Возможности ETL средства IBM DataStage покрывают достаточно широкий спектр требований, которые возникают в задачах по интеграции данных, но, рано или поздно, возникает потребность расширить функциональные возможности, внедряя Parallel Routines на языке С или создавая Java классы, которые, в дальнейшем используются в Java Transformer или Java Client. Довольно ограниченные возможности же встроенного языка Basic давно устарели и не могут расцениваться как серьезное подспорье (так, например, невозможно использовать XML структуры, или, другой пример — попробуйте написать хеширование MD5 при помощи Basic. Это возможно, но займет значительное время на разработку и отладку).
Как бы там ни было, хотелось бы иметь достаточно гибкое средство, позволяющее работать с потоком данных, не требующее перекомпиляции своих исходных кодов и которое можно было бы использовать в редакторе DataStage Client. Моим коллегой и близким другом было предложено разработать Groovy Transformer. О нем и пойдет речь в данной заметке.
Читать полностью »
Как мы создали продвинутый интернет-банк за 5 месяцев
2012-12-18 в 9:07, admin, рубрики: agile, java, play framework, Веб-разработка, интернет-банкинг, метки: play framework, интернет-банкинг 20 ноября Банк Санкт-Петербург запустил новый интернет-банк. Так как это не совсем обычный интернет-банк и разрабатывался он нестандартными методами, я решил поделиться деталями того, как мы делали этот проект, что помогло нам создать его менее, чем за 5 месяцев, а также рассказать о некоторых технических деталях.
Читать полностью »
Запускаем консольные Java приложения на Android
2012-12-17 в 9:39, admin, рубрики: android, java, обучение программированию, Разработка под android, метки: java, обучение программированию
Речь пойдёт о проекте-утилитке, который может пригодиться всякому кто изучает Java и не всегда имеет под рукой ПК для просмотра работы примера кода в полевых условиях (как-то — в метро, маршрутке, кафешке и т.д.).Читать полностью »
Работа с JMS сообщениями и MDB в JEE
2012-12-17 в 6:27, admin, рубрики: ejb3, java, jms, Программирование, метки: ejb3, java, jms Работа с сообщениями подразумевает взаимодействие между компонентами системы посредством передачи сообщений. JMS позволяет реализовать это взаимодействие в java приложении, а MDB бины позволяют асинхронно обрабатывать получаемые сообщения на сервере приложений без дополнительных усилий по асинхронной обработке.
Читать полностью »
Вышел Kotlin M4
2012-12-12 в 6:50, admin, рубрики: java, kotlin, Блог компании JetBrains, Программирование, метки: kotlin Вышел Kotlin M4, очередной milestone нашего языка программирования. Теперь Kotlin совместим с JDK7, научился еще лучше выводить типы, стал побыстрее. Сильно продвинулся отладчик, интеграция IDE с JUnit, поддержан новый механизм сборки, который со временем перерастет в инкрементальный компилятор… В этом посте я коротко расскажу о самом интересном, более подробно про M4 можно почитать здесь (по-английски).
Читать полностью »
Songo: Desktop-ный плеер Вконтакте
2012-12-11 в 20:04, admin, рубрики: java, Вконтакте, музыка, метки: java, Вконтакте, музыка Я часто видел, как люди слушают музыку вконтакте из браузера. Причем слушают, как обычный плеер. Я же испытываю отвращение к такого рода использованию ибо люблю вкладки в браузере закрывать. Так и родилась идея этого приложения, которой я бредил несколько месяцев, прежде чем понять, что нужно сделать, чтобы извлечь это из своей головы.
Умеет плэйлисты, сворачиваться в трэй и главное никогда не станет платным, как россыпь других прокси-сервисов типа Prostopleer'а или Muzebr'ы. Исходники открыты под лицензей BSD. Так что, если меня собъёт автобус, а аккаунт Вконтакте украдут, каждый может вбить собственный идентификатор приложения и наслаждаться музыкой.Читать полностью »
Java собеседование. Коллекции
2012-12-11 в 12:34, admin, рубрики: java, Алгоритмы, коллекции, собеседование вопросы, метки: java, коллекции, собеседование вопросы С недавнего времени у меня появилась настойчивая мысль, что профессиональное развитие сильно замедлилось и это хочется как-то исправить. Да, читаю книги, слушаю курсы, но в то же время приходит и понимание того, что возможно пришло время сменить работу, здесь вроде как все изучено, плавно уходим в рутину. Данная мысль сподвигла меня на рассылку своего резюме в несколько компаний — лидеров рынка. После прохождения собеседования в 3 из них, я решил, как водится внести свои 5 копеек в освещение обширной темы собеседования, а именно технических вопросов по Java коллекциям, с которыми приходится сталкиваться. Да, знаю, читатель скажет: «коллекции — избитая тема, сколько можно», но часть из приведенных ниже вопросов, я задавал своим знакомым разработчикам, которые занимают именно позиции разработчиков («крепких середнячков», по меркам недалекой от Москвы глубинки, которые уверенно справляются со своей работой на практике, а вот в теории скажем так есть пробелы, потому, что работа не требует решения каких нетривиальных задач, да и потому что не всем это интересно — изучать как внутри работает структура данных), вызывало растерянность. Думаю, что рассмотренный материал будет не очень интересен разработчикам выше уровня Junior (я попрошу их комментировать, дополнять и критиковать изложенный здесь материал), а вот Junior`ы уверен, найдут в этой статье интересное для себя.
Читать полностью »