Да я не спорю — блог действительно интересный. Просто способ привлечения публики через нестандартный опрос и ссылку на «продолжение следует» в каменте немного улыбнули.
Прошу прощения, проглядел, что и Long и Integer также имеют перегруженный метод для примитивного аргумента
/**
* Returns a <tt>Long</tt> instance representing the specified
* <tt>long</tt> value.
* If a new <tt>Long</tt> instance is not required, this method
* should generally be used in preference to the constructor
* {@link #Long(long)}, as this method is likely to yield
* significantly better space and time performance by caching
* frequently requested values.
*
* @param l a long value.
* @return a <tt>Long</tt> instance representing <tt>l</tt>.
* @since 1.5
*/
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l <= 127) { // will cache
return LongCache.cache[(int)l + offset];
}
return new Long(l);
}
Может я что-то упустил, но в исходниках класса java.lang.Long метод valueOf(String) определяется как
/**
* Returns a <code>Long</code> object holding the value
* of the specified <code>String</code>. The argument is
* interpreted as representing a signed decimal <code>long</code>,
* exactly as if the argument were given to the {@link
* #parseLong(java.lang.String)} method. The result is a
* <code>Long</code> object that represents the integer value
* specified by the string.
* <p>
* In other words, this method returns a <code>Long</code> object
* equal to the value of:
*
* <blockquote><pre>
* new Long(Long.parseLong(s))
* </pre></blockquote>
*
* @param s the string to be parsed.
* @return a <code>Long</code> object holding the value
* represented by the string argument.
* @exception NumberFormatException If the string cannot be parsed
* as a <code>long</code>.
*/
public static Long valueOf(String s) throws NumberFormatException
{
return new Long(parseLong(s, 10));
}
Другими словами Long.valueOf сводиться к new Long. Каким образом он может быть быстрее?
Активно пользуюсь аннотацией @Scheduled. Из недостатков можно отметить невозможность отключения крона (только указав день/месяц/деньНедели максимально отдалённый от текущей даты) и невозможность указания имени треда.
От себя добавлю, что данные для стандартных отчётов (scm, cim, project-team, mailing-list, issue-tracking) берутся из POM'a, поэтому важно не забыть туда их добавить, если вы не хотите, что бы отчёты были пустыми.
Кстати, рекомендую использовать site для генерации документации по проекту. Включив в отчёты ЖабаДок, вы реально получаете готовый сайт проекта, который можно во время выпуска релиза (не забываем про maven-release-plugin) выкладывать на сервер документации.
Нет, совершенно не обязательно. В случае с Spring AOP срез можно определить как в описании совета (например, в аннотации @Around), так и в XML-конфиге.
который как раз использует кеширование.
Другими словами Long.valueOf сводиться к new Long. Каким образом он может быть быстрее?
Желание программиста вырасти в лида или техдира понятно, но вот в менеджера проектов… это имхо наоборот регресс :)
Кстати, рекомендую использовать site для генерации документации по проекту. Включив в отчёты ЖабаДок, вы реально получаете готовый сайт проекта, который можно во время выпуска релиза (не забываем про maven-release-plugin) выкладывать на сервер документации.