JavaRush /Java блог /Random /Кофе-брейк #194. Изменяемая строка в Java. 10 редко испол...

Кофе-брейк #194. Изменяемая строка в Java. 10 редко используемых строковых методов Java

Статья из группы Random

Изменяемая строка в Java

Источник: Medium Это руководство поможет лучше понять, для чего нужна изменяемая строка в Java, как ее создать, и как она работает в памяти программы. Кофе-брейк #194. Изменяемая строка в Java. 10 редко используемых строковых методов Java - 1

Что такое изменяемая строка в Java?

Неизменный (Immutable) в Java означает закрытый для изменений независимо от времени. Всякий раз, когда мы создаем строковый объект класса String, он по умолчанию создается неизменяемым по своей природе. Если мы изменим значение строки, JVM создаст новый объект. Изменяемость (Mutable) означает изменение с течением времени или то, что можно изменить. В изменяемой строке мы можем изменить значение строки, и JVM не создает новый объект. В изменяемой строке мы можем изменить значение строки в том же объекте. Чтобы создать изменяемую строку в Java, существует два класса — StringBuffer и StringBuilder, в них класс String используется для неизменяемой строки.

Как создать изменяемую строку в Java?

Чтобы создать изменяемую строку, нужно использовать класс StringBuffer или StringBuilder. Оба класса создают изменяемый объект строки, но какой из них мы должны применить, полностью зависит от сценария. Предположим, вы хотите работать в многопоточной среде, а строка должна быть потокобезопасной. В этом случае вам следует использовать класс StringBuffer. В иной ситуации, когда вам не нужна многопоточная среда, вы можете использовать StringBuilder. Что касается производительности, то StringBuilder лучше с этой точки зрения по сравнению с StringBuffer. Давайте посмотрим, как создать строку с помощью классов StringBuffer и StringBuilder.

public class MutableString
{
    public static void main (String[] args)
    {
        StringBuffer str1 = new StringBuffer("JavaRush");
        StringBuilder str2 = new StringBuilder("Learning");
        
        System.out.println("Value of str1 before change :" + str1);
        System.out.println("Value of str2 before change :" + str2);
        
        str1.append(".com");
        str2.append(" website");
        
        System.out.println("Value of str1 after change :" + str1);
        System.out.println("Value of str2 after change :" + str2);
    }
}
Вывод:
Value of str1 before change: JavaRush Value of str2 before change: Learning Value of str1 after change: JavaRush.com Value of str2 after change: Learning website
В приведенном выше примере мы создаем две изменяемые строки: одну из StringBuffer, а другую из StringBuilder. Затем мы меняем значение строки. При этом нам не нужно присваивать значение в одном и том же объекте, в отличие от неизменяемых строк.

Как изменяемая строка работает в памяти?

В приведенном ранее примере вы видели, как создать изменяемую строку. Давайте посмотрим, как это работает в памяти.

StringBuffer str1 = new StringBuffer("JavaRush");
StringBuilder str2 = new StringBuilder("Learning");
После выполнения вышеуказанной строки JVM создаст в памяти два объекта и вернет ссылку на переменную.

10 редко используемых строковых методов Java

Источник: Medium Вашему вниманию представлен список из десяти методов в Java, которые используются не так часто, как многие другие, но которые стоит знать каждому разработчику. Кофе-брейк #194. Изменяемая строка в Java. 10 редко используемых строковых методов Java - 2
  1. Метод codePointAt() возвращает значение символа Unicode по указанному индексу в строке. Индекс первого символа равен 0, второго символа — 1 и так далее.

  2. Метод codePointBefore() возвращает значение символа Unicode перед указанным индексом в строке. Индекс первого символа равен 1, второго символа — 2 и так далее.
    Примечание. Значение 0 вызовет ошибку, так как это отрицательное число (вне досягаемости).

  3. Метод endWith() класса Java String проверяет, заканчивается ли эта строка заданным суффиксом. Он возвращает true, если эта строка заканчивается данным суффиксом; в ином случае возвращает false.

  4. Метод trim() в Java String — это встроенная функция, которая удаляет начальные и конечные пробелы. Например, Unicode-значение символа пробела — '\u0020'. Метод trim() проверяет это значение до и после строки, если оно существует, то удаляет пробелы и возвращает пропущенную строку.

  5. Метод valueOf возвращает соответствующий числовой объект, содержащий значение переданного аргумента. Аргумент может быть примитивным типом данных, строкой и так далее. Этот метод является статическим методом. Метод может принимать два аргумента, один из которых является строкой, а другой — системой счисления.

  6. Метод isEmpty() проверяет, является ли строка пустой или нет. Этот метод возвращает true, если строка пуста (length() равен 0), и false, если нет.

  7. Метод contentEquals() ищет строку, чтобы выяснить, содержит ли она точно такую ​​же последовательность символов в указанной строке или StringBuffer. Возвращает true, если такие символы существуют, и false, если нет.

  8. Метод intern() класса Java String возвращает интернированную строку. То есть, он возвращает каноническое представление для строкового объекта. Его можно использовать для возврата строки из памяти, если она создана новым ключевым словом. Метод создает точную копию объекта строки кучи в пуле строковых констант.

  9. Character.offsetByCodePoints(CharSequence seq, int index, int codePointOffset) — это встроенный метод в Java, который возвращает индекс в данной последовательности символов, если она смещена от заданного индекса на кодовые точки codePointOffset.

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

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ