Какой метод я должен использовать, чтобы преобразовать int в строку? - PullRequest
3 голосов
/ 09 декабря 2011

Я знаю, что String.valueOf(int) включает кэширование и часто не вызывает создание дополнительного объекта, но ("" + 1) получает какую-то оптимизацию компилятора?

Какой из них следует использовать?

РЕДАКТИРОВАТЬ : String.valueOf (int) не включает кэширование, Integer.valueof (int) делает.

Ответы [ 5 ]

5 голосов
/ 09 декабря 2011

Нет, String.valueOf не выполняет кэширование.Тем не менее, он более читаемый , чем "" + 1 (который также не выполняет никакого кэширования), потому что он говорит, что вы хотите сделать.

"" + 1 говорит о конкатенации строк и пустойСтрока, ни одна из которых не имеет ничего общего с вашей целью - то есть получить значение целого числа, так как String.

String.valueOf говорит именно то, что вы хотите сделать, поэтому используйте это.

5 голосов
/ 09 декабря 2011

"" + 1 - это плохая привычка, на мой взгляд, и, насколько я знаю, она никак не оптимизирована.

Придерживайтесь String.valueOf(int).

0 голосов
/ 09 декабря 2011

Использование String.valueOf(int) является оптимальным для применения.

""+i может быть более оптимальным для вас, и если у вас недостаточно времени и устройства с ограниченными ресурсами, экономия вашего времени может оказаться более ценной, чем экономия микросекунды процессорного времени.

0 голосов
/ 09 декабря 2011

Выберите явные преобразования вместо неявных.

String.valueOf(int) точно говорит вам, что он делает.

Хотя я всегда использую Integer.toString(int), потому что читаю это как toString метод для примитива int.

0 голосов
/ 09 декабря 2011

Они оба эквивалентны, и это больше вопрос личного вкуса. Лично я предпочитаю String.valueOf (int).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...