В чем разница между Mutable и Immutable в Java?



Эта статья о Mutable и Immutable в Java представляет собой исчерпывающее руководство по различию между ними, а также обсуждает, почему строки java неизменяемы.

Java - одна из самых популярных предоставляет различные концепции для создания приложений, одна из которых - Mutable And Immutable в Java. Что ж, эта концепция основана на внесении изменений в поля после создания объекта и, таким образом, упрощает программирование для . Итак, в этой статье об изменяемых и неизменяемых в Java я рассмотрю следующие темы:

Что такое изменяемый объект?





Объекты, в которых вы можете изменять поля и состояния после создания объекта, известны как изменяемые объекты. пример : java.util.Date, StringBuilder и т. д.

Что такое неизменяемый объект?



В объекты в которых вы не можете ничего изменить после создания объекта, известны как неизменяемые объекты. пример : Упакованные примитивные объекты, такие как Integer, Long и т. Д.

Итак, теперь, когда вы знаете, что является изменяемым и неизменным в java, давайте продвинемся вперед и увидим различия между ними.

Разница между изменяемыми и неизменяемыми объектами



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

Мутабельный Неизменный
Поля можно изменить после создания объектаПоля нельзя изменить после создания объекта
Обычно предоставляет метод для изменения значения поляНет способа изменить значение поля
Имеет методы Getter и SetterИмеет только метод Getter
Пример: StringBuilder, java.util.DateПример: String, примитивные объекты в штучной упаковке, такие как Integer, Long и т. Д.

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

Как создать изменяемый класс?

Чтобы создать изменяемый класс в Java, вы должны убедиться, что выполняются следующие требования:

  1. Предложите метод для изменения значений поля
  2. Метод получения и установки

Рассмотрим следующий код:

package edureka пример общедоступного класса {частный пример строки Coursename (String Coursename) {this.coursename = Coursename} public String getName () {return Coursename} public void setName (String Coursename) {this.coursename = Coursename} public static void main (String [] args) {example obj = new example ('Machine Learning') System.out.println (obj.getName ()) // обновляем имя, этот объект является изменяемым obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Вы увидите следующий результат:

Вывод изменяемых объектов - изменяемый и неизменяемый в Java - Edureka

Итак, теперь, когда вы знаете, как создать изменяемый класс, в следующей статье давайте посмотрим, как создать неизменяемый класс.

Как создать неизменяемый класс?

Чтобы создать неизменяемый класс в Java, вы должны убедиться, что выполняются следующие требования:

как отсортировать массив c ++
  1. Класс должен быть объявлен как окончательный так что его нельзя продлить.
  2. Все поля должны быть закрытыми, чтобы прямой доступ был запрещен.
  3. Нет методов установки
  4. Сделайте все изменяемые поля окончательными, чтобы их можно было назначить только один раз.
package edureka общедоступный класс exampleimmutable {private final String имя курса exampleimmutable (final String имя курса) {this.coursename = имя курса} public final String getName () {return Coursename} public static void main (String [] args) {пример obj = new example ( 'Машинное обучение') System.out.println (obj.getName ())}}

Вы увидите следующий результат:

Хорошо, теперь, когда вы знаете об изменяемых и неизменяемых объектах, позвольте мне сказать вам, что строки неизменяемы в Java. Теперь я уверен, что это могло вызвать вопрос, почему строки неизменяемы в Java. Итак, теперь в этой статье давайте посмотрим на то же самое.

Почему строки неизменяемы в Java?

Java использует концепции . Итак, если вы рассмотрите пример, в котором у вас есть много ссылочных переменных, ссылающихся на один объект, то даже если одна ссылочная переменная изменяет значение объект , автоматически будут затронуты все остальные ссылочные переменные. Также, согласно Эффективная Java ,глава 4, страница 73, 2-е издание, ниже приведены причины для использования неизменяемых классов:

  • Неизменяемые объекты просты
  • Эти объекты не требуют синхронизации и по своей сути являются потокобезопасными.
  • Неизменяемые объекты - хорошие строительные блоки для других объектов

Если мне нужно объяснить вам на примере, тогда,

Допустим, у вас есть переменная samplestring , в котором хранится строка « Машинное обучение «. Теперь, если вы объедините эту строку с другой строкой ' Мастера ', затем объект, созданный для « Машинное обучение »Не изменится. Вместо этого будет создан новый объект для « Мастера машинного обучения «. См. Изображение ниже:

Как вы можете видеть на изображении выше, samplestring Ссылочная переменная относится к «Машинному обучению», но не к другой строке, даже после создания двух объектов. На этом мы подошли к концу статьи о Mutable и Immutable в Java. Я надеюсь, что вы, ребята, ясно понимаете каждый аспект, о котором я говорил выше.

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

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