concat против “+” ради оптимизации

274
27 мая 2017, 16:24

Во многих местах пишется что concat работает быстрее чем "+" для склеивания строк. Но он например автоматически не преобразует иные типы, и для того чтобы склеить 2 числа переведенных в строку, нужно писать

String s = String.valueOf(num1).concat(String.valueOf(num2);

Когда можно просто написать

String s = num1 + "" + num2;

Есть ли ощущение оптимизации ? При условии что код становиться куда длиннее. Есть ли смысл заменять "+" на concat ?

Answer 1

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

Answer 2

Не знаю насчёт конкатенации, но при простом "сложении" обе части строки переводятся в символьные массивы, после чего неявно вызывается StringBuilder и далее уже наращивается String заново.

А так да, знак "+" предназначен больше для математических операций, со строками лучше использовать String.format.

concat() ни разу в жизни не пользовался.

READ ALSO
Передача картинки с сервера на клиент. Android Studio. Java

Передача картинки с сервера на клиент. Android Studio. Java

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

573
Как инициализировать listView в AsyncTask?

Как инициализировать listView в AsyncTask?

Не запускается приложение,не могу понять где ошибкаМетод doInBackground выполняется, инициализирует массив для listView

392
Что в себе содержит Environment?

Что в себе содержит Environment?

Добрый деньКакую информацию в себе содержит интерфейс Environment? Я так понимаю это интерфейс для работы с properties? Откуда он берёт эти properties? И как...

333