Подтвердить что ты не робот

Что лучше: позволить Java делать автобоксинг или использовать valueOf()

Мне просто интересно, есть ли какая-то разница в том, чтобы позволить java autobox сказать целое число:

Integer myInteger = 3; // This will call Integer.valueOf()

или имеющий ваш код как

Integer myInteger = Integer.valueOf(3);

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

4b9b3361

Ответ 1

Они равны в любом случае внутренне, поэтому используйте первый вариант. Скорее всего, что будущие оптимизации компилятора могут сделать первый еще быстрее в будущем.

Ответ 2

Я бы выбрал первый выбор. Это то же самое с меньшим количеством кода.

Если я не ожидаю, что программа должна запускаться на более старой версии JVM. Однако в этом случае это будет далеко не единственной проблемой совместимости.

Таким образом, единственная причина не использовать автобоксинг - это если он недоступен.

Ответ 3

Что я знаю, здесь действительно нет большой разницы в производительности, см. этот пост здесь Разница на самом деле не является разницей, но вы должны использовать valueOf, потому что Integer теперь кэширует объекты Integer между -128 и 127.