Java - одна из самых популярных предоставляет различные концепции для создания приложений, одна из которых - Mutable And Immutable в Java. Что ж, эта концепция основана на внесении изменений в поля после создания объекта и, таким образом, упрощает программирование для . Итак, в этой статье об изменяемых и неизменяемых в Java я рассмотрю следующие темы:
- Что такое изменяемый объект?
- Что такое неизменяемый объект?
- Разница между изменяемыми и неизменяемыми объектами
- Как создать изменяемый класс?
- Как создать неизменяемый класс?
- Почему строки неизменяемы в Java?
Что такое изменяемый объект?
Объекты, в которых вы можете изменять поля и состояния после создания объекта, известны как изменяемые объекты. пример : java.util.Date, StringBuilder и т. д.
Что такое неизменяемый объект?
В объекты в которых вы не можете ничего изменить после создания объекта, известны как неизменяемые объекты. пример : Упакованные примитивные объекты, такие как Integer, Long и т. Д.
Итак, теперь, когда вы знаете, что является изменяемым и неизменным в java, давайте продвинемся вперед и увидим различия между ними.
Разница между изменяемыми и неизменяемыми объектами
Вы можете обратиться к следующей таблице, чтобы узнать о различиях между изменяемыми и неизменяемыми объектами в Java.
Мутабельный | Неизменный |
Поля можно изменить после создания объекта | Поля нельзя изменить после создания объекта |
Обычно предоставляет метод для изменения значения поля | Нет способа изменить значение поля |
Имеет методы Getter и Setter | Имеет только метод Getter |
Пример: StringBuilder, java.util.Date | Пример: String, примитивные объекты в штучной упаковке, такие как Integer, Long и т. Д. |
Теперь, когда вы знаете разницу между изменяемыми и неизменяемыми объектами, давайте посмотрим, как их создавать. классы.
Как создать изменяемый класс?
Чтобы создать изменяемый класс в Java, вы должны убедиться, что выполняются следующие требования:
- Предложите метод для изменения значений поля
- Метод получения и установки
Рассмотрим следующий код:
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, вы должны убедиться, что выполняются следующие требования:
как отсортировать массив c ++
- Класс должен быть объявлен как окончательный так что его нельзя продлить.
- Все поля должны быть закрытыми, чтобы прямой доступ был запрещен.
- Нет методов установки
- Сделайте все изменяемые поля окончательными, чтобы их можно было назначить только один раз.
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», и мы свяжемся с вами как можно скорее.