Mi a különbség a Java-ban a Mutable és az Immutable között?



Ez a cikk a Mutable and Immutable in Java témáról átfogó útmutató a köztük lévő különbségekről, és azt is megvitatja, hogy a java húrok miért változtathatatlanok.

A Java az egyik legnépszerűbb különféle fogalmakat kínál az alkalmazások létrehozásához, és az egyik ilyen koncepció a Java-ban módosítható és megváltoztathatatlan. Nos, ez a koncepció az objektumok létrehozása után a mezők megváltoztatására támaszkodik, és így megkönnyíti a programozását . Tehát ebben a Java-ban változtatható és megváltoztathatatlan cikkben a következő témákat fogom megvitatni:

Mi az a mutálható objektum?





Azokat az objektumokat, amelyekben az objektum létrehozása után megváltoztathatja a mezőket és állapotokat, Mutálható objektumok néven ismerjük. Példa : java.util.Date, StringBuilder stb.

Mi az a megváltoztathatatlan objektum?



Az tárgyakat amelyekben az objektum létrehozása után nem lehet semmit megváltoztatni, ezek megváltoztathatatlan objektumok. Példa : Dobozos primitív tárgyak, mint az Egész, Hosszú stb.

Tehát most, hogy tudod, mi a Java-ban változtatható és megváltoztathatatlan, lépjünk előre, és lássuk a kettő közötti különbségeket.

hogyan lehet riasztást tenni html-ben

Különbség a változtatható és a megváltoztathatatlan objektumok között



A Java táblázatban olvasható a mutábilis és megváltoztathatatlan objektumok közötti különbségekről.

Változékony Változhatatlan
A mezők az objektum létrehozása után módosíthatókAz objektum létrehozása után a mezők nem módosíthatók
Általában biztosít egy módszert a mező értékének módosításáraNincs módja a mező értékének módosítására
Getter és Setter módszerekkel rendelkezikCsak Getter módszerrel rendelkezik
Példa: StringBuilder, java.util.DatePélda: Karakterlánc, dobozos primitív objektumok, mint egész szám, hosszú és így tovább

Most, hogy ismeri a változtatható és megváltoztathatatlan objektumok közötti különbségeket, nézzük meg, hogyan lehet ezeket létrehozni osztályok.

Hogyan hozhatunk létre Mutable osztályt?

Ha módosítható osztályt szeretne létrehozni a Java-ban, meg kell győződnie arról, hogy a következő követelmények teljesülnek:

  1. Adjon meg egy módszert a mezőértékek módosításához
  2. Getter és Setter módszer

Vegye figyelembe a következő kódot:

csomag edureka public class example {private String Coursename example (String Coursename) {this.coursename = Coursename} public String getName () {return Coursename} public void setName (String Coursename) {this.coursename = Coursename} public static void main (String [] args) {példa obj = új példa ('Gépi tanulás') System.out.println (obj.getName ()) // frissítse a nevet, ez az objektum mutable obj.setName ('Machine Learning Masters') rendszer. out.println (obj.getName ())}}

A következő kimenetet látja:

Változtatható objektum kimenet - megváltoztatható és megváltoztathatatlan Java- Edureka alkalmazásban

Tehát most, hogy tudod, hogyan hozhat létre módosítható osztályt, a cikk következő részében vizsgáljuk meg, hogyan lehet létrehozni egy változhatatlan osztályt.

Hogyan lehet létrehozni egy megváltoztathatatlan osztályt?

Változhatatlan osztály létrehozásához a Java-ban meg kell győződnie arról, hogy a következő követelmények teljesülnek:

  1. Egy osztályt úgy kell deklarálni végső hogy ne lehessen meghosszabbítani.
  2. Az összes mezőt priváttá kell tenni, hogy a közvetlen hozzáférés ne legyen megengedett
  3. Nincs beállító módszer
  4. Tegye véglegessé az összes módosítható mezőt, hogy csak egyszer rendelhetők hozzá.
csomag edureka public class 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 ( 'Machine Learning') System.out.println (obj.getName ())}}

Az alábbi kimenetet látja:

hogyan lehet naplófájlokat létrehozni a java-ban

Rendben, így most, hogy tud a változtatható és megváltoztathatatlan objektumokról, hadd mondjam el, hogy a karakterláncok megváltoztathatatlanok a Java-ban. Most biztos vagyok benne, hogy ez felvethetett egy kérdést, hogy miért változhatatlanok a húrok a Java-ban. Tehát a cikk következő részében nézzük meg ugyanezt.

Miért változtathatók a karakterláncok a Java-ban?

A Java a . Tehát, ha figyelembe veszünk egy példát, ahol sok referenciaváltozó van egyetlen objektumra hivatkozva, akkor is, ha egy referenciaváltozó megváltoztatja a tárgy , automatikusan hatással lesz az összes többi referencia változóra. Továbbá szerint Hatékony Java ,4. fejezet, 73. oldal, 2. kiadás, az alábbiak indokolják az Immutable osztályok használatát:

  • A megváltoztathatatlan objektumok egyszerűek
  • Ezek az objektumok nem igényelnek szinkronizálást, és eredendően szálbiztosak
  • A megváltoztathatatlan tárgyak jó építőelemeket jelentenek más tárgyak számára

Ha egy példával kell elmagyaráznom,

Mondjuk, hogy van változója mintavétel , amely tárolja a „ Gépi tanulás “. Most, ha összefűzi ezt a karakterláncot egy másik karakterlánccal ' Mesterek ', akkor a „ Gépi tanulás ”Nem fog változni. Ehelyett egy új objektum jön létre a Gépi tanulási mesterek “. Lásd az alábbi képet:

Amint a fenti képen látható, a mintavétel a referencia változó „gépi tanulásra” utal, de a másik karakterláncra még két objektum létrehozása után sem. Ezzel véget értünk a Java-ban módosítható és megváltoztathatatlan cikknek. Remélem, hogy srácok tisztában vannak minden szempontommal, amelyet fentebb tárgyaltam.

Most, hogy megértette a Java alapjait, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát olyan hallgatók és szakemberek számára tervezték, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és képezze mind az alapvető, mind a fejlett Java koncepciókhoz, valamint a különböző Java keretrendszerekhez, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg a „Mutálható és megváltoztathatatlan Java-ban” blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.