2016-11-10 3 views

ответ

3

Вы можете использовать обои и обои! Попробуй!

«Почему?» ты спрашиваешь. Волшебство здесь - оператор +.

Когда + используется со строками, он автоматически превращает другой операнд в строку! Вот почему он может использоваться с 'c', символьным литералом. Он также может использоваться с "c", потому что, конечно, "c" является строковым литералом.

Мало того, вы даже можете добавить целые числа в строку:

String s2=s1+1; 
1

U может использовать его в двух Diferent способами: String s2=s1+'c'; и char x = 'c'; String s2 = s1 + x;

0

Оба подхода в порядке, но если вы собираетесь в детали, то, возможно

String s2=s1+'c'; 

займет немного меньше памяти, чем второй способ, потому что символ является только два байта в то время как строка Requir es 8+ байтов. Но я не думаю, что такие нюансы важны в большинстве случаев, и я даже не уверен, что эта разница будет существовать вообще, потому что JVM может ее оптимизировать.

0

Java автоматически выполняет преобразование для вас, Это действительно важно, но я бы просто использовал строку (двойные кавычки) только потому, что лично я предпочитаю свести к минимуму «автоматический материал», который случается, если я могу это предотвратить.

Кроме того, если вы когда-либо решили, что «c» должно быть «csomething», тогда вам все равно придется изменить его на цитату boudle.

Но я полагаю, я просто придирки ...

1

Это 2 разные виды литья: неявной и явное литье.

String s2=s1+'c'; 

Это неявное приведение, которое означает, что магия делается компилятором (без накладных).

String s2=s1+"c"; 

Это явное приведение, так как «с» превращается в объект, как:

Object o = "c"; 
String s2 = (String) o; 

Это означает, что преобразование должно быть проверено на нуль-указатели, которые будут создавать накладные расходы.

Поэтому, хотя оба способа работают, я предпочитаю кастинг от персонажа ('c'), потому что это создаст меньше накладных расходов!

источник: http://www.javaworld.com/article/2076555/build-ci-sdlc/java-performance-programming--part-2--the-cost-of-casting.html

Смежные вопросы