Меня спросили в интервью, почему String неизменен
Я ответил так:
Когда мы создаем строку в java как
String s1="hello";, тогда объект будет создан в пуле строк (привет) и s1 будет указывая на привет. Теперь, если снова мы сделаемString s2="hello";, тогда другой объект не будет создан, но s2 будет указывать наhelloпотому что JVM сначала проверит, находится ли тот же объект в пул строк или нет. Если этого не существует, то новый создается иначе.
Теперь, если предположить, что java разрешает строку mutable, то, если мы изменим s1 на hello world, то значение s2 также будет hello world, поэтому строка java неизменна.
Может ли любой орган рассказать мне, соответствует ли мой ответ правильным или неправильным?