Что лучше: позволить Java делать автобокс или использовать valueOf () - PullRequest
17 голосов
/ 10 марта 2011

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

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

или иметь ваш код как

Integer myInteger = Integer.valueOf(3);

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

Ответы [ 3 ]

18 голосов
/ 10 марта 2011

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

4 голосов
/ 10 марта 2011

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

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

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

1 голос
/ 10 марта 2011

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

...