Байт-код dex (android), вероятно, еще более эффективен ... несжатый .dx меньше, чем сжатый jar .class, и вся причина для dalvik по сравнению с java mobile была производительностью (стандартный jvm слишком ненадежен для мобильных устройств)

трел на некоторые из примитивных коллекций Java (клад, fastutil, HPPC) и я заметил, что переменные класса иногда объявляются какfinal локальные переменные. Например:

public void forEach(IntIntProcedure p) {
    final boolean[] used = this.used;
    final int[] key = this.key;
    final int[] value = this.value;
    for (int i = 0; i < used.length; i++) {
        if (used[i]) {
          p.apply(key[i],value[i]);
        }
    }
}

Я сделал несколько тестов, и кажется, что этонемного быстрее при этом, но почему это так? Я пытаюсь понять, что делает Java по-другому, если первые три строки функции были закомментированы.

Примечание: это похоже наэтот вопрос, но это было для c ++ и не рассматривает, почему они объявленыfinal.

Ответы на вопрос(0)

Ваш ответ на вопрос