Мне было любопытно, я часто вижу такие вещи:
Arrays.sort(array, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return Math.abs(a) < Math.abs(b);
}
});
так как анонимный класс, созданный здесь, не имеет переменных экземпляра, достаточно ли стандартный компилятор JDK умен, чтобы только один раз инстанцировать этот анонимный класс и повторно использовать его? Или желательно инстанцировать этот анонимный класс в статическом поле и всегда передавать статический объект Comparator?
UPDATE: Когда я говорю "JDK компилятор", я имею в виду и порцию JIT. Это тоже всего лишь пример. Мне было очень любопытно, стоит ли мне, в качестве лучшей практики, создавать статические поля для вышеперечисленного, вместо того, чтобы вставлять анонимные экземпляры классов. В некоторых случаях проблема производительности / использования ресурсов будет незначительной. Но в других случаях может и не быть.