Что нужно знать об использовании строк в Java

Как только вы начнете изучать Java, класс String привлечет ваше внимание благодаря своим уникальным свойствам.

Вы можете создавать строки и управлять ими в Java легче, чем другие языки. Это потому, что класс String предлагает различные функции.

На основе этих функций существует несколько методов создания и редактирования строк в зависимости от ваших предпочтений и потребностей. Точно так же многое будет зависеть от вашего приложения и от того, где нужно использовать строки.

Чем отличаются строки Java?

Если вы ранее работали с языком C, вы знаете, что строки в C представляют собой массив символов (символов). С другой стороны, строки Java неизменяемы и содержат символы Unicode.

Одной из ключевых функций, делающих строки в Java уникальными, является конкатенация. Просто используйте оператор сложения «+», чтобы соединить две или более строк. Этого нельзя делать с другими объектами Java, такими как Point или Circle .

Кроме того, как упоминалось ранее, строки Java неизменяемы, т. е. вы не можете их изменять. Например, такие методы, как toUpperCase () и toLowerCase () , генерируют полностью новую строку вместо того, чтобы вносить изменения в существующее содержимое строки. Теперь ваш код вернет эту вновь созданную строку.

По теме: Как манипулировать текстом в PHP с помощью этих функций

Еще одна область, где Строки отличаются, когда дело доходит до использования нулевых символов для завершения строк в таких языках, как C. В Java строки — это объекты, поддерживаемые символьными массивами. Если вы хотите читать содержимое своей строки в том виде, в котором его представляют символьные массивы, используйте метод toCharArray () .

Сравнение строк в Java также удобнее, чем в других языках программирования. Вместо того, чтобы писать длинный блок кода для сравнения строк, вы можете использовать метод equals () для сравнения двух или более строк, используемых в любой программе. В основном это связано с тем, что в Java метод equals переопределяется классом String, что упрощает сравнение строк.

Аналогичным образом, поиск в подстроках в Java также не вызывает проблем. При использовании регулярных выражений или таких методов, как lastIndexOf () и indexOf (), вы можете искать сегменты строк и возвращать значения после определения совпадения.. Вы также можете использовать регулярные выражения для обрезки и разделения различных строк и использования их по отдельности для самых разных целей в любой программе.

Как строки хранятся в памяти?

Теперь, когда вы знаете, что делает строки в Java разными и полезными, давайте рассмотрим класс String. Если вы кое-что знаете об управлении памятью в Java, значит, вы имели дело с двумя его ключевыми сущностями: кучей и стеком.

Стек используется для выполнения процессов и операций после вызова программой Java, тогда как в куче хранится контент, необходимый для эффективного выполнения и выполнения кода. Итак, какое отношение имеет управление памятью в случае строк?

Это потому, что класс String и строковые литералы в Java обрабатываются по-разному. Это указывает на то, что строковым литералам назначается уникальное пространство хранения в динамической памяти, называемое пулом констант строк. Поэтому всякий раз, когда вы используете строковые литералы для создания строковых объектов в Java, пул констант строк сохраняет их.

Напротив, когда вы используете ключевое слово new для создания строковых объектов , Java будет относиться к ним так же, как к любому другому объекту, и отправлять их в кучу для хранения.

Пример строковых литералов

Теперь, когда вы знаете достаточно о строковых объектах, давайте рассмотрим пример строковых литералов:

  
public class muostrings {
public static void main (String args [])
{
String himuo = "Hello World from MUO";
System. out .println (himuo);
}
}

Здесь строковый литерал создал объект String с содержимым «Hello World from МУО ». Java отправит этот объект в пул констант строк.

Использование нового ключевого слова

Вы также можете использовать ключевое слово new для создания объектов String.

Строковый объект строки «himuo» с содержимым «Hello World from MUO» был сгенерирован строковым литералом и будет отправлен в пул констант строк. Точно так же строковые объекты также могут быть созданы с использованием ключевого слова new следующим образом:

  
public class muostringsobj {
public static void main (String args []) {
char [] strArr = {'M', 'O', 'U'};
String jStr = new String (strArr);
System. out . println (jStr);
}
}

В приведенном выше примере ключевое слово new используется для создания строкового объекта. Как объяснялось ранее, они отправляются в кучу, где хранятся с другие переменные и объекты, ожидающие выполнения программой.

К настоящему времени вам должно быть интересно узнать о пуле констант строк, и это правильно. Он выделяет пространство пула для объектов на основе содержимого строкового объекта . После того, как пул констант строк получает объекты, он проверяет их, чтобы убедиться, что два объекта содержат одно и то же содержимое.

Могут ли два строковых объекта хранить одинаковое содержимое?

Когда строковый литерал используется для создания нового объекта, виртуальная машина Java (JVM) просматривает содержимое объекта и оценивает, существует ли он уже в пуле. объект содержит контент, который уже присутствует в пуле, ссылка на объект возвращается без создания нового объекта. Если вы должны создать новый объект, вы должны сделать убедитесь, что содержание отличное и уникальное.

Однако, если вы используете ключевое слово new для создания новой строки, она будет обрабатываться по-другому. Когда вы используете ключевое слово new для создания новой строки, она будет сгенерирована независимо от того, содержит ли она то же содержимое, что и существующая строка.

Это указывает на то, что двум существующим строковым объектам, хранящимся в памяти кучи, разрешено иметь одно и то же содержимое; это отличается от строковых объектов, хранящихся в пуле констант строк. Вы также можете доказать это с помощью оператора «==»; он возвращает истину, если сравниваются два объекта с одинаковым физическим адресом.

  
public class comparingStrngs {
public static void main (String [] args )
{
String firstLiteral = "muo1";
String secondLiteral = "muo1";
System. out (firstLiteral == secondLiteral);
Строка firstKeyword = new String ("muo2");
Строка secondKeyword = new String ("muo2");
System. out .println (firstKeyword == secondKeyword) ;
}
}

Теперь вы можете легко понять строки на Java

В этой статье вы узнали, чем строки в Java отличаются, способы использования строк в Java, управление памятью строк в Java и другие важные t подробности о том, как работают струны. Чтобы проверить свое понимание, почему бы не написать программу на Java для объединения двух строк?

Оцените статью
oilgasindustry.ru
Добавить комментарий