Понимание класса String в java иногда становится обременительной задачей. Мы застряли в какой-то момент или пытаемся читать снова и снова, чтобы понять концепцию String, также это небольшой класс, но не все знают, как он работает, в основном это программисты начального уровня.

Также самый часто задаваемый вопрос в интервью.

Давайте разберемся, что такое String .

В java String — это класс с именем java.lang.String, так как он является частью java.lang. Вам не нужно импортировать класс, который java автоматически вызывает.

Объекты String являются неизменяемыми в java.

Появился вопрос? Что является неизменным?

Неизменяемость означает, что вы не можете изменить объект String после его создания, это похоже на константы, которые вы создаете в java.

Если вы хотите создать изменяемую строку, Java предоставляет два класса: StringBuffer и StringBuilder.

Как создать строку в Java?

В java есть два способа создать строку.

  • Строковый литерал
 String stringLiteral = "Hello String";
  • Создание экземпляра класса String.
String stringConstructor = new String("Hello String");

Давайте углубимся в концепцию String

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

Я знаю, что у вас есть вопрос, что такое пул строк?

Пул строк — это пространство, предоставляемое jvm для хранения всех строк, созданных литералом строки, фактически оно следует интернированию строк Концепция, о которой я расскажу позже.

Что на самом деле происходит, так это то, что когда мы впервые создаем строку с использованием литерала, java сначала просматривает пул строк, существует ли строка в пуле или нет. Если строка действительно находится в пуле строк, что делает java, она вернет ссылку на место в памяти, иначе, если строка не существует, она создаст новую строку в пуле строк. Дайте понять на примере.

String s = "string"; 
// it looks into the pool, and there is no value exists with //"string" so, a new value is stored in the String pool.
---------------------------------------------------------------
String s1 = "string";
//here java again look into the pool and java actaully finds the value string,so instead of creating the new value java will return the reference to the value alredy exists in the string pool

В части 2

  • создание String с использованием объекта класса string
  • интернирование строк
  • разница между обоими методами создания строки