Vad är skillnaden mellan mutable och immutable i Java?



Den här artikeln om Mutable and Immutable in Java är en omfattande guide till skillnaderna mellan dem och diskuterar också varför Java-strängar är oföränderliga.

Java är en av de mest populära ger olika koncept för att skapa applikationer, och ett sådant koncept är Mutable And Immutable i Java. Tja, detta koncept bygger på att göra ändringar i fälten efter att objektet skapats och därmed underlättar programmeringen för . Så i den här artikeln om föränderliga och oföränderliga i Java kommer jag att diskutera följande ämnen:

Vad är ett föränderligt objekt?





Objekten där du kan ändra fälten och tillstånden efter att objektet har skapats kallas föränderliga objekt. Exempel : java.util.Date, StringBuilder, etc.

Vad är Immutable object?



De objekt där du inte kan ändra någonting när objektet har skapats kallas immutabla objekt. Exempel : Ursprungliga primitiva föremål som heltal, lång och etc.

Så nu när du vet vad som är föränderligt och oföränderligt i Java, låt oss gå vidare och se skillnaderna mellan de två.

Skillnaden mellan föränderliga och oföränderliga föremål



Du kan hänvisa till följande tabell för skillnader mellan föränderliga och oföränderliga objekt i Java.

hur man använder br i html
Föränderlig Oföränderlig
Fält kan ändras efter att objektet har skapatsFält kan inte ändras efter att objekt har skapats
Generellt tillhandahåller en metod för att ändra fältvärdetHar ingen metod för att ändra fältvärdet
Har Getter och Setter metoderHar bara Getter-metoden
Exempel: StringBuilder, java.util.DateExempel: Sträng, primitiva objekt som Integer, Long och etc

Nu när du vet skillnaderna mellan föränderliga och oföränderliga föremål, låt oss titta på hur man skapar dessa klasser.

vad är actionlistener i java

Hur skapar jag en förändringsbar klass?

För att skapa en mutbar klass i Java måste du se till att följande krav är uppfyllda:

  1. Ge en metod för att ändra fältvärdena
  2. Getter och Setter metod

Tänk på följande kod:

paket edureka public class-exempel {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) {exempel obj = nytt exempel ('Machine Learning') System.out.println (obj.getName ()) // uppdatera namnet, detta objekt kan ändras obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Du ser följande utdata:

Mutable Object Output - Mutable and Immutable in Java-Edureka

Så nu när du vet hur man skapar en förändrad klass, låt oss sedan titta i den här artikeln hur man skapar en oföränderlig klass.

Hur skapar jag en oföränderlig klass?

För att skapa en oföränderlig klass i Java måste du se till att följande krav är uppfyllda:

  1. En klass ska förklaras som slutlig så att den inte kan förlängas.
  2. Alla fält bör göras privata så att direktåtkomst inte tillåts
  3. Inga settermetoder
  4. Gör alla muterbara fält slutliga så att de bara kan tilldelas en gång.
paket edureka public class exempelimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {exempel obj = nytt exempel ( 'Machine Learning') System.out.println (obj.getName ())}}

Du ser nedanstående utdata:

Okej, så nu när du vet om föränderliga och oföränderliga objekt, låt mig berätta att strängar är oföränderliga i Java. Nu är jag säker på att detta kan ha väckt en fråga om varför är strängarna oföränderliga i Java. Så, nästa i den här artikeln, låt oss titta på detsamma.

endimensionell matris i Java

Varför är strängar oföränderliga i Java?

Java använder begreppen . Så om du överväger ett exempel där du har många referensvariabler som hänvisar till ett enda objekt, även om en referensvariabel ändrar värdet på objekt , påverkas automatiskt alla andra referensvariabler. Enligt, enligt Effektiv Java ,kapitel 4, sida 73, 2: a upplagan, följande är skäl att använda Immutable-klasser:

  • Oföranderliga föremål är enkla
  • Dessa objekt kräver ingen synkronisering och är i sig trådsäkra
  • Oföranderliga föremål är bra byggstenar för andra föremål

Om jag måste förklara dig med ett exempel, då

Låt oss säga att du har en variabel samplestring , som lagrar strängen “ Maskininlärning “. Om du sammanfogar den här strängen med en annan sträng ' Mästare ', sedan skapade objektet för “ Maskininlärning ”Kommer inte att ändras. Istället skapas ett nytt objekt för “ Mästare för maskininlärning “. Se nedanstående bild:

Som du kan se i bilden ovan, samplestring referensvariabel hänvisar till ”Machine Learning”, men inte den andra strängen, även efter att två objekt har skapats. Med detta kommer vi till ett slut på den här artikeln om Mutable and Immutable in Java. Jag hoppas att ni är tydliga om varje aspekt som jag har diskuterat ovan.

Nu när du har förstått grunderna i Java, kolla in av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för studenter och yrkesverksamma som vill bli Java-utvecklare. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på denna 'Mutable and Immutable in Java' -blogg så återkommer vi till dig så snart som möjligt.