2012-06-06 2 views
-4

Что отличаетс от того, на что ссылается ссылка в str в первой строке по сравнению со второй строкой?В чем разница между строкой и массивом символов?

char[] str={'A','B','C'}; 

против

String str= new String("ABC"); 
+3

Что похоже на эти два утверждения ??? – Dancrumb

+0

Один - это String, другой - нет. – Robin

ответ

2

Одним из них является массив примитивов.

Другое - это полный объект с полезными функциями.

1

ну просто говоря,

String str= new String("ABC"); Строка является неизменяемым объектом (его значение не может изменяться), представляющий последовательность символов. Он имеет полезные методы манипулирования строками (indexOf, split и т. Д.)

char str[]={'A','B','C'}; Массив массивов - это просто: массив символов. Он имеет фиксированную длину, и вы можете изменить его содержимое по своему усмотрению. У него нет метода манипуляции строками.

+0

привет Анурагу нет разницы в памяти? –

+0

Строка содержит следующее: массив символов - таким образом отдельный объект, содержащий фактические символы; целочисленное смещение в массив, в котором начинается строка; длина строки; еще один int для кэшированного вычисления хэш-кода. , поэтому вполне можно предположить, что он занимает больше места, чем массив символов. –

+0

@ AbhishekV.Bajaj - В наивной реализации объект 'String' содержит поле длины, поле смещения, поле хэш-значения и ссылку на массив' char [] '. Массив 'char []' является отдельным объектом, который может использоваться совместно с другими объектами String (например, в случае операции подстроки). –

0
char str[]={'A','B','C'}; 

Этот массив символов, который три элемента длиной

String str= new String("ABC"); 

Это String объект, который имеет полезные методы, которые могут быть вызваны на него.

+1

Было бы хорошо, если бы люди, которые отвечали на вопросы, объясняли их рассуждения. –

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