Я изучал Java String некоторое время. Следующие вопросы основаны на следующих сообщениях
Java String является специальным
Неизменяемость строки в java
-
Неизменность: Теперь, следуя неизменности, класс String был разработан так, чтобы значения в общем пуле можно было повторно использовать в других местах/переменных. Это хорошо, если
String
был создан какString a = "Hello World!";
Однако, если я создаю String какString b = new String("Hello World!");
почему это неизменное? (или это?). Поскольку у этого есть выделенная память кучи, я должен иметь возможность модифицировать это, не затрагивая никакой другой переменной. Итак, по дизайну, была ли какая-либо другая причина, почемуString
в целом считается неизменяемым? Или мое предположение неверно? -
Во-вторых, я хотел спросить об общем пуле строк. Если я создаю строковый объект как
String c = "";
- пустая запись, созданная в пуле?
Есть ли еще какие-либо сообщения? Если да, может ли кто-нибудь поделиться ссылкой?