Mutable vs Immutable Java

foranderlig vs uforanderlig

Mutable vs Immutable

forskel mellem Mutable vs Immutable Java

Mutable objekter har felter, der kan ændres, de uforanderlige objekter har ingen felter, der kan ændres, efter at objektet er oprettet. Uforanderlige objekter er objekter, hvis tilstand ikke kan ændre sig, efter at de er oprettet. Mutable og uforanderlige er to kategorier af objekter i java. I denne artikel vil vi se forskellene mellem mutable og uforanderlige objekter i java. Vi vil også se eksempler på java-kode, der viser forskelle mellem mutabel og uforanderlig klasse i java.

Head to Head sammenligning mellem Mutable vs Immutable Java (Infographics)

nedenfor er de top 6 forskelle mellem Mutable vs Immutable Java:

Start dit gratis Programudviklingskursus

internetudvikling, programmeringssprog, test af programmer & andre

foranderlig vs uforanderlig info

Mutable vs Immutable info

nøgleforskelle mellem Mutable vs Immutable Java

Følgende er nøgleforskelle mellem mutable og uforanderlige objekter i Java:

  • Mutable objekter er de objekter, hvor vi kan foretage ændringer i et objekts tilstand uden at oprette et nyt objekt. Det er et foranderligt objekt, der kan ændres efter dets oprettelse. I tilfælde af uforanderlige objekter, når tilstanden af et objekt ændres, får vi et nyt objekt. Mens vi beskæftiger os med uforanderlige objekter, har vi ikke lov til at ændre et objekts tilstand efter dets oprettelse.
  • Mutable objekter giver i almindelige tilfælde metoder, hvorigennem objekters indhold kan ændres, mens uforanderlige objekter ikke giver nogen metode til at ændre deres indhold.
  • i mutable java-klasser er getter-og setter-metoder til stede, mens der i uforanderlige klasser kun er getter-metoder tilgængelige og ikke setter-metoder.
  • Mutable klasser kan være trådsikre, mens uforanderlige klasser som standard er trådsikre.
  • eksempler på mutable klasser i java er java.util.Dato, StringBuffer, StringBuilder, etc mens java legacy klasser, indpakning klasser, streng klasse er eksempler på uforanderlige klasser i java.

Mutable vs Immutable Java Comparison Table

lad os diskutere den øverste sammenligning mellem Mutable vs Immutable Java:

Mutable

uforanderlige

Java Mutable object kan ændres efter oprettelsen. Java Immutable object kan ikke ændres efter dets oprettelse.
der dannes ikke noget nyt objekt, når der foretages ændringer i et eksisterende objekt. når et eksisterende objekt ændres, dannes der et nyt objekt.
det giver metoder til at ændre indholdet af et objekt. det giver ikke metoder til at ændre indholdet af et objekt.
getter og setter metoder er til stede i mutable klasser. kun getter-metoder er til stede og ikke setter-metoder.
Mutable klasser kan eller måske ikke være trådsikre. uforanderlige klasser er trådsikre som standard.
nogle almindelige eksempler på foranderlige klasser i java er StringBuffer, StringBuilder og java.util.Dato. alle ældre klasser, Indpakningsklasser, Strengklasse er almindelige eksempler på uforanderlige klasser i java.

Mutable og uforanderlige Java med eksempler

Mutable og uforanderlige Java med eksempler er angivet nedenfor:

eksempel #1 – Mutable klasse i Java

nu vil vi se eksempler på java-kode, der viser oprettelsen af mutable og uforanderlige klasser i java.

kode:

package com.edubca.mutabledemo;
public class MutableDemo {
private String studentName;
private int rollNumber;
MutableDemo (String studentName, int rollNumber) {
this.studentName = studentName;
this.rollNumber = rollNumber;
}
public String getStudentName() {
return studentName;
}
// this setter can modify the name
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getRollNumber() {
return rollNumber;
}
// this setter can modify roll number
public void setRollNumber(int rollNumber) {
this.rollNumber = rollNumber;
}
public static void main(String args) {
MutableDemo obj = new MutableDemo ("John" , 100);
System.out.println("Original Name is " + obj.getStudentName());
System.out.println("Original Roll Number is " + obj.getRollNumber());
// update the name, and roll number as is mutable
obj.setStudentName("James");
obj.setRollNumber(102);
System.out.println("Modified Name is " + obj.getStudentName());
System.out.println("Modified Roll Number is " + obj.getRollNumber());
}
}

Output:

Mutable vs uforanderlig Java-1.1

Mutable vs uforanderlig Java-1.1

ovenstående kode viser oprettelsen af en foranderlig klasse i java med getters og setters.

eksempel #2 – uforanderlig klasse i Java

nu vil vi se, hvordan vi kan oprette uforanderlige klasser i Java.

kode:

package com.edubca.immutabledemo;
public final class ImmutableDemo {
final String studentName;
final int rollNumber;
public ImmutableDemo (String studentName, int rollNumber) {
this.studentName = studentName;
this.rollNumber = rollNumber;
}
public String getStudentName() {
return studentName;
}
public int getRollNumber() {
return rollNumber;
}
public static void main(String args) {
ImmutableDemo obj = new ImmutableDemo ("John" , 100);
// Since no getters are available contents cannot be modified.
// Also as variables are declared final they cannot be modified
System.out.println("Name is " + obj.getStudentName());
System.out.println("Roll Number is " + obj.getRollNumber());
}
}

Output:

Mutable vs uforanderlig Java-1.2

Mutable vs uforanderlig Java-1.2

ovenstående kode viser oprettelsen af java uforanderlig klasse. Følgende punkter skal huskes, mens du opretter en uforanderlig klasse:

  • en uforanderlig klasse skal være endelig, da den ikke skal arves.
  • alle felter i en uforanderlig klasse skal gøres endelige.
  • hvis et foranderligt objekt bruges som et felt i en uforanderlig klasse, skal der implementeres særlig håndtering for at forhindre, at indholdet ændres.
  • en offentlig konstruktør skal være til stede.
  • Getter metoder for alle variabler bør defineres.
  • Setter-metoder bør ikke være til stede for nogen variabler.

konklusion

fra ovenstående diskussion har vi en klar forståelse af forskellene mellem mutable og uforanderlige i java. Vi har også set java-eksempler, der viser, hvordan mutable og uforanderlige klasser oprettes. Det er vigtigt at bemærke, at uforanderlige klasser som standard er trådsikre, mens foranderlige klasser måske eller måske ikke er trådsikre.

Anbefalede artikler

dette er en guide til Mutable vs Immutable Java. Her diskuterer vi også de foranderlige vs uforanderlige Java-nøgleforskelle med infografik og sammenligningstabel. Du kan også se på følgende artikler for at lære mere–

  1. Java BufferedReader
  2. StringBuffer klasse i Java
  3. Java Runtimeundtagelse
  4. Java nyinstans()
0 aktier

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.