Неизменяемая строка в Java: все, что вам нужно знать



Эта статья предоставит вам подробные и всесторонние знания о неизменяемой строке в Java. Почему это важно?

Работа с неизменяемой строкой в - очень важный аспект любого языка программирования. В этой статье мы обсудим следующие указатели:

Введение в неизменяемую строку в Java

В пуле строк есть строковые объекты, которые кэшируются, поэтому строка является неизменной. Несколько клиентов используют кэшированные строковые литералы. Риски, связанные с действиями одного клиента, повлияют на всех остальных клиентов.





Например, когда клиент изменяет строковое значение «Test» на «TEST», все остальные клиенты увидят измененное значение. Поскольку кеширование строковых объектов было важно для производительности, класс Immutable String избежал риска. Также, String сделан окончательным, чтобы не нарушить инвариант класса String. Пример Неизменяемость, кеширование, вычисление хэш-кода путем расширения и переопределения поведения.

Ключ Hashmap

Ключ HashMap очень популярен, неизменность очень важна, чтобы объект значения можно было получить из HashMap. Хеширование - это принцип HashMap, который требует того же значения для правильной работы. Два разных хэш-кода создаются: один во время вставки, а другой - во время извлечения, когда содержимое изменяется после вставки, что может привести к потере объекта значения карты на карте.



факториал числа java

Неизменяемая строка Hashtable в Java
Неизменяемый класс String в Java - наиболее часто задаваемый .Обсуждение начинается с того, что такое String, чем она отличается от String в C ++, а затем следует вопрос: неизменяемые объекты в Java, преимущества неизменяемого объекта, каково их использование и сценарии их использования.

Потребность в неизменяемой строке в Java

Две причины важны, чтобы сказать, почему класс Immutable String сделан на Java:

1. Невозможно в этом случае иметь один строковый объект / литерал.



Обратимся к примеру ниже:

«Тест» может быть обозначен многими ссылочными переменными. Если один из них изменит значение для других, это также повлияет. Посмотрим, как это сделать.

Строка A = 'Test'
Строка B = 'Test'


Строка A называется «Test» .toUpperCase (), которая изменяет тот же объект в,'ТЕСТОВОЕ ЗАДАНИЕ'поэтому B также будет «ТЕСТ», в котором нет необходимости. Ниже приведена диаграмма, которая показывает нам, как String создается в памяти кучи и в пуле литералов String.

2. Строка широко использовалась в качестве параметра для многих классов Java. Например, когда мы открываем сетевое соединение, мы можем передать имя хоста и номер порта в виде строки, а для открытия соединения с базой данных мы можем передать URL-адрес базы данных в виде строки.


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

Неизменяемая строка также может безопасно совместно использовать потоки, что важно для многопоточного программирования. Неизменяемый экземпляр строки является потокобезопасным в Java, поэтому нет необходимости синхронизировать операцию String извне, чтобы избежать проблем синхронизации в Java. Еще один важный момент, на который следует обратить внимание, - это утечка памяти, вызванная Substring, которая не связана с потоком, но о чем следует знать.

На этом мы подошли к концу статьи «Неизменяемая строка в Java». C черт возьми от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.