суббота, 20 апреля 2013 г.

Кэширование Integer

Как известно, целочисленные значения в Java кэшируются в диапазоне от -128 до 127. Для Integer этот диапазон можно изменить при помощи системного свойства java.lang.Integer.IntegerCache.high.

Как можно понять из названия этого свойства, оно задаёт верхнюю планку кэшируемых значений. Собравшись изменить размер кэша, помните, что вернюю планку не получится опустить ниже заданного по умолчанию минимального уровня, а также установить размер кэша больший, чем Integer.MAX_VALUE.

Эффекта, аналогичного полученному от использования свойства java.lang.Integer.IntegerCache.high, можно также достичь при помощи параметра виртуальной машины -XX:AutoBoxCacheMax=<size>.

пятница, 19 апреля 2013 г.

Если IntelliJ IDEA не видит M2_HOME

Работая в IntelliJ IDEA под Linux столкнулся с одним неприятным моментом: среда разработки упорно отказывалась видеть переменную окружения M2_HOME, объявленную в файле .bashrc. Приходилось каждый раз при создании нового проекта указывать эту переменную вручную. Наконец мне надоело мириться с этим произволом со стороны ОС и IDEA и я отправился искать решение проблемы в интернетах. Нашёл его на баг-трекере JetBrains: оказывается для учёта переменных окружения из .bashrc следует запускать среду разработки не напрямую, а с помощью команды
bash -i <path_to_idea_folder>/bin/idea.sh