Устройство и методы сравнения строк в Java
Опубликованно 29.11.2018 04:14
Люди и машины, которые общаются друг с другом через устройства, в частности набор символов. Символы собираются в слова, а слова — в предложения или строки, из которой создается текст. Любое приложение не был создан, набор символов всегда будет присутствовать, независимо от языка. Объект String в Java
В Java строка является объектом специального и показывали с английского слова String. Первая версия Java 1.7.0_06 в основе лежит массив char value, состоящий из определенного типа данных char. Объект был 16 бит на символ Unicode с значение по умолчанию ‘u0000’. Также присутствовала переменная int offset, что он говорил, с характером, в этом массиве начинается строка. Переменная int count описание количество полученных символов строки, начиная с int offset. Но с появлением Java 9, переменные offset и count перестали использоваться. Еще одна новинка так называемая «концепция compact string». Попытки ввести его таким и до сих пор в Java 6, но тогда были проблемы с производительностью, и эта идея была оставлена.
Нововведения в Java 9
Массив char value, в новой версии стало байт value, так как по статистике большинство строк можно было представить символы латинского алфавита. И для них не нужно использовать 2 байта, достаточно одного. Поэтому было принято решение ввести в массив байтов и байт кодер, который хранит кодирование — latin-1 или utf-16, где в первом случае, байт равен нулю, в то время как второй диск. В одной строке для каждого символа выделяется 1 байт, и как только вы встречаете людей, которые не вписываются, для него выделяется 2 байта. Из-за этого, длина строки не всегда равно длине массива. Они совпадают только в случае, если содержит кодировку latin-1. Строка равна половине длины массива, если кодировка utf-16. Также новая версия находится в постоянном boolean COMPACT_STRINGS.
Функции класса String
Класс String — неизменны, что означает сопротивление. Он также final, то от него не может быть унаследована, вы не можете сделать некоторые строки на основе этого класса. Объекты не могут быть изменены после создания. На самом деле все методы, что бы изменить строку, создать новый объект. Основные причины безопасность и String pool. Безопасности с точки зрения рабочего, не имея для синхронизации операций. Вы можете отправить строку между потоками. Так что вам не нужно беспокоиться о том, что строка будет изменена.
Также есть возможность хранить хэш-код, непосредственно на объекте. Безопасности, состоит также в том, что строки, вы можете спокойно передать в качестве параметров для авторизации и неизменность гарантирует, что процесс доставки не будут изменены. String pool-это своего рода кэш-строк. В памяти, где хранятся объекты, есть место, где сохраняются строки, созданные указав код литералов. Для ускорения работы и сохранения в памяти можно хранить несколько ссылок в одной строке, если значения, чем они сами. Для реализации переменные String есть специальные классы — StringBuilder и StringBuffer. Оба они практически идентичны, но второй thread-safe.
Методы класса String
Со строками можно работать с помощью различных методов. Они позволяют выполнять следующие операции: провести сравнение длин строк Java; извлечения подстроки из строки; получить символ индекса или индекса по характеру; проверить строку на пустоту; узнать длину строки; преобразовать строку в массив; изменить реестре; ссылка управления; разбить строку в массив; удалить пробелы в начале и в конце; заменить подстроки.
До быть удален, offset и count метод извлечения подстроки из строки работал немного по-другому, чем в новой версии. Он только создал новую оболочку для объекта String, array, при этом остался старый. Можно было заменить часть строки, но осталась ссылка на старую версию. Это привело к потери памяти. Избежать этой проблемы можно было только с помощью конструктора копирования. В новой версии Java строка хранит только те данные, которые в нем записаны.
Сравнение двух строк Java
Рассмотрим один из методов, более внимательно. Особенно часто применяется специальная акция в Java — сравнения строк. Класс String для этого есть два варианта для метода compareTo(). Метод compareTo(String anotherString) используется для сравнения строк в Java объект String с уведомлением аргумент String и сопоставляет их лексикон. Она возвращает целочисленное значение -1, чтобы «минус», 0, чтобы равенство или 1 для «больше». Этот метод является полезным для сортировки алгоритмы. Аналогичный метод для сравнения строк в Java — Equals(). Использовать логические значения на равенство и, если объекты эквивалентны, то возвращается значение true. Если первый вариант применяется для сортировки, второй служит для определения равенства. Еще один вариант для сравнения строк в Java — метод compareToIgnoreCase(String str). Он похож на предыдущий, но он игнорирует различие между заглавными и строчными буквами. Автор: Мария Штернберг 28 Августа, 2018
Категория: Техника