Hvad er forskellen mellem mutable og immutable i Java?



Denne artikel om mutable and immutable in Java er en omfattende guide til forskellene mellem dem og diskuterer også, hvorfor java-strenge er uforanderlige.

Java er en af ​​de mest populære giver forskellige koncepter til oprettelse af applikationer, og et sådant koncept er Mutable And Immutable i Java. Nå, dette koncept er afhængig af at foretage ændringer i felterne efter oprettelsen af ​​objektet og letter programmeringen for . Så i denne artikel om foranderlig og uforanderlig i Java vil jeg diskutere følgende emner:

Hvad er et omskifteligt objekt?





Objekterne, hvor du kan ændre felter og tilstande, efter at objektet er oprettet, er kendt som omskiftelige objekter. Eksempel : java.util.Date, StringBuilder osv.

Hvad er uforanderlig genstand?



Det genstande hvor du ikke kan ændre noget, når objektet er oprettet, er kendt som uforanderlige objekter. Eksempel : Primitive genstande i boks som heltal, lang og osv.

Så nu hvor du ved, hvad der kan ændres og uforanderligt i java, så lad os gå videre og se forskellene mellem de to.

c ++ stl spørgsmål til interview

Forskellen mellem mutable og immutable objekter



Du kan henvise til følgende tabel for forskellene mellem ændrede og uforanderlige objekter i Java.

Omskiftelig Uforanderlig
Felter kan ændres efter oprettelsen af ​​objektetFelter kan ikke ændres efter oprettelse af objekt
Tilvejebringer generelt en metode til at ændre feltværdienHar ingen metode til at ændre feltværdien
Har Getter og Setter metoderHar kun Getter metode
Eksempel: StringBuilder, java.util.DateEksempel: String, indrammede primitive objekter som heltal, lang og osv

Nu hvor du kender forskellene mellem foranderlige og uforanderlige objekter, så lad os se på, hvordan vi opretter disse klasser.

Hvordan oprettes en mutable klasse?

For at oprette en ændret klasse i Java skal du sikre dig, at følgende krav er opfyldt:

  1. Giv en metode for at ændre feltværdierne
  2. Getter og Setter metode

Overvej følgende kode:

pakke edureka public class-eksempel {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public static ugyldigt main (String [] args) {eksempel obj = nyt eksempel ('Machine Learning') System.out.println (obj.getName ()) // opdater navnet, dette objekt kan ændres obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Du ser følgende output:

Mutable Object Output - Mutable and Immutable in Java-Edureka

Så nu hvor du ved, hvordan du opretter en ændret klasse, skal vi næste i denne artikel undersøge, hvordan du opretter en uforanderlig klasse.

Hvordan oprettes en uforanderlig klasse?

For at oprette en uforanderlig klasse i Java skal du sikre dig, at følgende krav er opfyldt:

  1. En klasse skal erklæres som endelig så det ikke kan forlænges.
  2. Alle felter skal gøres private, så direkte adgang ikke er tilladt
  3. Ingen setter metoder
  4. Gør alle de ændrede felter endelige, så de kun kan tildeles en gang.
pakke edureka public class eksempelimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static ugyldigt main (String [] args) {eksempel obj = nyt eksempel ( 'Machine Learning') System.out.println (obj.getName ())}}

Du vil se nedenstående output:

Okay, så nu hvor du kender til foranderlige og uforanderlige objekter, så lad mig fortælle dig, at strenge er uforanderlige i Java. Nu er jeg sikker på, at dette måske har rejst et spørgsmål om, hvorfor strenge er uforanderlige i Java. Så næste i denne artikel, lad os se på det samme.

Hvorfor er strenge uforanderlige i Java?

Java bruger begreberne . Så hvis du overvejer et eksempel, hvor du har mange referencevariabler, der henviser til et enkelt objekt, så selvom en referencevariabel ændrer værdien af objekt , vil alle andre referencevariabler automatisk blive påvirket. Også ifølge Effektiv Java ,kapitel 4, side 73, 2. udgave, er følgende grunde til at bruge uforanderlige klasser:

  • Uforanderlige genstande er enkle
  • Disse objekter kræver ingen synkronisering og er i sagens natur trådsikre
  • Uforanderlige genstande er gode byggesten til andre objekter

Hvis jeg skal forklare dig med et eksempel, så

Lad os sige, at du har en variabel samplestring , der gemmer strengen “ Maskinelæring “. Nu, hvis du sammenkæder denne streng med en anden streng ' Mestre ', derefter oprettes objektet til “ Maskinelæring ”Ændres ikke. I stedet oprettes et nyt objekt til “ Machine Learning Masters “. Se nedenstående billede:

Som du kan se i ovenstående billede, er samplestring referencevariabel henviser til “Machine Learning”, men ikke den anden streng, selv efter oprettelsen af ​​to objekter. Med dette kommer vi til en ende på denne artikel om mutable and immutable in Java. Jeg håber, at I er klare over hvert eneste aspekt, som jeg har diskuteret ovenfor.

Nu hvor du har forstået det grundlæggende i Java, skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet på denne 'Mutable and Immutable in Java' -blog, og vi vender tilbage til dig hurtigst muligt.