Компилятор JDK оптимизирует использование анонимных классов без переменных экземпляров?

Мне было любопытно, я часто вижу такие вещи:

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. Это тоже всего лишь пример. Мне было очень любопытно, стоит ли мне, в качестве лучшей практики, создавать статические поля для вышеперечисленного, вместо того, чтобы вставлять анонимные экземпляры классов. В некоторых случаях проблема производительности / использования ресурсов будет незначительной. Но в других случаях может и не быть.

5
задан at. 17 September 2011 в 09:49
поделиться