| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Динамическая память; классы Vector и StringBuffer
Перевод на русский ©
Сергей Миссан, 2000 Java Q&A Я хочу динамически распределять память для любого типа. Также, когда я использую класс Vector, он иногда выдает OutOfMemoryError. Как мне справиться с этой ситуацией? Еще одна проблема возникает, когда я хочу создать длинную строку последовательно добавляя маленькие строки. Использование оператора + для перекрывания класса String занимает слишком много времени. Как можно сделать подобную операцию быстрее? Отвечая на ваш вопрос по-поводу динамической памяти, когда вы создаете объект используя new, это все-равно что malloc() в C/C++. То есть, он выделяет память при создании объекта, динамически. Для того, чтобы решить вашу проблему с классом Vector и OutOfMemoryError, создайте нить следящую за общим объемом памяти и свободной памятью. Когда память закончится, освободите ссылки вызвав gc. fee как в этом примере: Runtime rt = Runtime.getRuntime();
long total = rt.freeMemory();
long free = rt.freeMemory();
if(total-free < 5000000) { //if it is less than 1MB
//release refs to some objects here
//the systems that create cache will release
//LRU objects here
rt.gc();
}
Для решения проблемы со строками, используйте класс StringBuffer. String являеться немодифицируемым объектом (immutable), то есть вы не можете его менять. Каждое изменение будет создавать новый Object. StringBuffer, в свою очередь, значительно быстрее и может модифицироваться -- вы можете добавлять к нему строки не создавая новый объект. Например, так: String initialString = "initial "; StringBuffer sb = new StringBuffer(initialString); String newString = "some thing new "; //use append as many times as you want sb.append(newString); //and when you want to get String System.err.println(sb.toString()); Об автореRandom Walk Computing это наибольшая консалтинговая фирма в Нью Йорке, специализирующаяся на Java/CORBA решениях для предприятий. Известные своим выдающимся знанием Java, консультанты Random Walk публикуются и выступают на самых престижных форумах мира. Для связи с Random Walk используйте javaqa@javaworld.com. Reprinted with permission from the March 2000 edition of JavaWorld magazine. Рубрика: Java Q&A
Подгрузка через AJAX HTML-кода, содержащег....
При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.
Подробнее... |
Рубрика: AJAX
| Добавлено: 19.11.2008
Обзор нового релиза самой мощной Ajax библ....
Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.
Подробнее... |
Рубрика: AJAX
| Добавлено: 19.11.2008
Firebug 1.3 и 1.4 alpha — что нового и инт....
Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.
Подробнее... |
Рубрика: Вебмастеру
| Добавлено: 19.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|