Каква е разликата между Mutable и Immutable In Java?



Тази статия за Изменяеми и неизменяеми в Java е изчерпателно ръководство за разликите между тях и също така обсъжда защо java низовете са неизменни.

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

Какво е променлив обект?





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

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



The обекти в които не можете да промените нищо, след като обектът е създаден, са известни като неизменяеми обекти. Пример : Примитивни обекти в кутия като Integer, Long и др.

Така че, след като вече знаете какво е променливо и неизменяемо в Java, нека продължим напред и да видим разликите между двете.

pl sql урок за разработчици за начинаещи

Разлика между променливи и неизменяеми обекти



Можете да се обърнете към следната таблица за разликите между изменяеми и неизменяеми обекти в Java.

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

Сега, след като знаете разликите между изменяеми и неизменяеми обекти, нека разгледаме как да ги създадем класове.

Как да създам променлив клас?

За да създадете променлив клас в Java, трябва да се уверите, че са изпълнени следните изисквания:

  1. Осигурете метод за промяна на стойностите на полето
  2. Метод Getter и Setter

Обмислете следния код:

пакет edureka пример за публичен клас {частен низ пример за име на курс (низ за име на курс) {this.coursename = coursename} публичен низ getName () {връщане на име на курса} public void setName (низ за име на курс) {this.coursename = coursename} публична статична празнота main (низ [] args) {пример obj = нов пример ('Машинно обучение') System.out.println (obj.getName ()) // актуализираме името, този обект е променлив obj.setName ('Master Learning Masters') System. out.println (obj.getName ())}}

Ще видите следния изход:

Изменяем изход на обект - Изменяем и неизменяем в Java- Edureka

Така че сега, когато знаете как да създадете изменяем клас, следващата в тази статия ще разгледаме как да създадем неизменяем клас.

Как да създам неизменяем клас?

За да създадете неизменяем клас в Java, трябва да се уверите, че са изпълнени следните изисквания:

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

Ще видите изхода по-долу:

използване на итератор в java

Добре, така че сега, когато знаете за изменяеми и неизменяеми обекти, нека ви кажа, че низовете са неизменяеми в Java. Сега съм сигурен, че това може да е повдигнало въпрос защо са неизменни низовете в Java. И така, следващото в тази статия, нека разгледаме същото.

Защо струните са неизменяеми в Java?

Java използва концепциите на . Така че, ако разгледате пример, при който имате много референтни променливи, отнасящи се до един обект, тогава дори ако една референтна променлива променя стойността на обект , автоматично ще бъдат засегнати всички останали референтни променливи. Също така според Ефективна Java ,глава 4, страница 73, 2-ро издание, следните са причините да се използват неизменяеми класове:

  • Неизменяемите обекти са прости
  • Тези обекти не изискват синхронизация и по своята същност са безопасни за нишки
  • Неизменяемите обекти правят добри градивни елементи за други обекти

Ако трябва да ви обясня с пример, тогава,

Да кажем, че имате променлива низ от проби , който съхранява низа „ Машинно обучение “. Сега, ако обедините този низ с друг низ ' Господари ', след това обектът, създаден за „ Машинно обучение ”Няма да се промени. Вместо това ще бъде създаден нов обект за „ Магистри за машинно обучение “. Вижте изображението по-долу:

Както можете да видите на горното изображение, низ от проби референтната променлива се отнася до „Машинно обучение“, но не и към другия низ, дори след създаването на два обекта. С това стигаме до края на тази статия за Изменяеми и неизменяеми в Java. Надявам се, че вие ​​сте наясно с всеки един аспект, който съм обсъждал по-горе.

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

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог „Изменяеми и неизменяеми в Java“ и ние ще се свържем с вас възможно най-скоро.