Hva er forskjellen mellom mutable og immutable i Java?



Denne artikkelen om mutable and immutable in Java er en omfattende guide til forskjellene mellom dem og diskuterer også hvorfor java-strenger er uforanderlige.

Java er en av de mest populære gir forskjellige konsepter for å lage applikasjoner, og ett slikt konsept er Mutable And Immutable in Java. Vel, dette konseptet er avhengig av å gjøre endringer i feltene etter oppretting av objektet og letter programmeringen for . Så, i denne artikkelen om foranderlig og uforanderlig i Java, vil jeg diskutere følgende emner:

Hva er et foranderlig objekt?





Objektene der du kan endre felt og tilstander etter at objektet er opprettet, er kjent som foranderlige objekter. Eksempel : java.util.Date, StringBuilder og etc.

Hva er uforanderlig gjenstand?



De gjenstander der du ikke kan endre noe når objektet er opprettet, er kjent som uforanderlige objekter. Eksempel : Boxede primitive gjenstander som Integer, Long og etc.

Så nå som du vet hva som er foranderlig og uforanderlig i java, la oss gå videre og se forskjellene mellom de to.

Forskjellen mellom foranderlige og uforanderlige gjenstander



Du kan se på følgende tabell for forskjellene mellom foranderlige og uforanderlige objekter i Java.

Muterbar Uforanderlig
Felt kan endres etter oppretting av objektetFelt kan ikke endres etter oppretting av objekt
Tilbyr generelt en metode for å endre feltverdienHar ingen metode for å endre feltverdien
Har Getter og Setter metoderHar bare Getter-metoden
Eksempel: StringBuilder, java.util.DateEksempel: Streng, primitive objekter som Integer, Long og etc

Nå som du vet forskjellene mellom foranderlige og uforanderlige gjenstander, la oss se på hvordan du kan lage disse klasser.

Hvordan lage en mutable klasse?

For å opprette en mutbar klasse i Java, må du sørge for at følgende krav er oppfylt:

verktøy som brukes i stor dataanalyse
  1. Gi en metode for å endre feltverdiene
  2. Getter og Setter metode

Vurder følgende kode:

pakke edureka eksempel på offentlig klasse {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) {eksempel obj = nytt eksempel ('Machine Learning') System.out.println (obj.getName ()) // oppdater navnet, dette objektet er mutabelt obj.setName ('Machine Learning Masters') -system. out.println (obj.getName ())}}

Du ser følgende utdata:

Mutable Object Output - Mutable and Immutable in Java- Edureka

Så nå som du vet hvordan du lager en mutbar klasse, la oss i denne artikkelen se på hvordan du kan lage en uforanderlig klasse.

Hvordan lage en uforanderlig klasse?

xml transformasjon i informatica med eksempel

For å lage en uforanderlig klasse i Java, må du sørge for at følgende krav er oppfylt:

  1. En klasse skal erklæres som endelig slik at den ikke kan forlenges.
  2. Alle feltene bør gjøres private slik at direkte tilgang ikke er tillatt
  3. Ingen settermetoder
  4. Gjør alle foranderlige felt endelige, slik at de bare kan tildeles en gang.
pakke 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) {eksempel obj = nytt eksempel ( 'Machine Learning') System.out.println (obj.getName ())}}

Du ser utdataene nedenfor:

OK, så nå som du vet om foranderlige og uforanderlige gjenstander, la meg fortelle deg at strenger er uforanderlige i Java. Nå er jeg sikker på at dette kan ha reist et spørsmål om hvorfor strenger uforanderlige i Java. Så, neste i denne artikkelen, la oss se på det samme.

Hvorfor er strenger uforanderlige i Java?

Java bruker begrepene . Så hvis du vurderer et eksempel der du har mange referansevariabler som refererer til et enkelt objekt, så selv om en referansevariabel endrer verdien på gjenstand vil automatisk alle de andre referansevariablene bli påvirket. Også i følge Effektiv Java ,kapittel 4, side 73, 2. utgave, er følgende grunner til å bruke uforanderlige klasser:

  • Uforanderlige gjenstander er enkle
  • Disse objektene krever ingen synkronisering og er iboende trådsikre
  • Uforanderlige gjenstander er gode byggesteiner for andre gjenstander

Hvis jeg må forklare deg med et eksempel, så

La oss si at du har en variabel samplestring , som lagrer strengen “ Maskinlæring “. Nå, hvis du sammenkobler denne strengen med en annen streng ' mestere ', deretter gjenstanden opprettet for “ Maskinlæring ”Vil ikke endre seg. I stedet blir det opprettet et nytt objekt for “ Maskinlæring Masters “. Se bildet nedenfor:

Som du kan se i bildet ovenfor, er samplestring referansevariabel refererer til “Machine Learning”, men ikke den andre strengen, selv etter at to objekter ble opprettet. Med dette kommer vi til en slutt på denne artikkelen om Mutable and Immutable in Java. Jeg håper dere er klare over hvert eneste aspekt som jeg har diskutert ovenfor.

Nå som du har forstått det grunnleggende om Java, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet til denne 'mutable and immutable in Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.