Ответ 1
Они равны в любом случае внутренне, поэтому используйте первый вариант. Скорее всего, что будущие оптимизации компилятора могут сделать первый еще быстрее в будущем.
Мне просто интересно, есть ли какая-то разница в том, чтобы позволить java autobox сказать целое число:
Integer myInteger = 3; // This will call Integer.valueOf()
или имеющий ваш код как
Integer myInteger = Integer.valueOf(3);
Есть ли микро-оптимизация? Я знаю, что второй является более явным, но это также более ненужная типизация, есть ли какая-то разница помимо этого?
Они равны в любом случае внутренне, поэтому используйте первый вариант. Скорее всего, что будущие оптимизации компилятора могут сделать первый еще быстрее в будущем.
Я бы выбрал первый выбор. Это то же самое с меньшим количеством кода.
Если я не ожидаю, что программа должна запускаться на более старой версии JVM. Однако в этом случае это будет далеко не единственной проблемой совместимости.
Таким образом, единственная причина не использовать автобоксинг - это если он недоступен.
Что я знаю, здесь действительно нет большой разницы в производительности, см. этот пост здесь Разница на самом деле не является разницей, но вы должны использовать valueOf, потому что Integer теперь кэширует объекты Integer между -128 и 127.