Mutable vs Immutable Java

 Veränderlich vs unveränderlich

 Mutable vs Immutable

Unterschied zwischen Mutable vs Immutable Java

Mutable Objekte haben Felder, die geändert werden können, die unveränderlichen Objekte haben keine Felder, die geändert werden können, nachdem das Objekt erstellt wurde. Unveränderliche Objekte sind Objekte, deren Zustand sich nach ihrer Erstellung nicht ändern kann. Mutable und Immutable sind zwei Kategorien von Objekten in Java. In diesem Artikel werden wir die Unterschiede zwischen veränderlichen und unveränderlichen Objekten in Java sehen. Außerdem werden wir Java-Codebeispiele sehen, die Unterschiede zwischen veränderlichen und unveränderlichen Klassen in Java zeigen.

Kopf-an-Kopf-Vergleich zwischen veränderlichem und unveränderlichem Java (Infografiken)

Im Folgenden finden Sie die 6 wichtigsten Unterschiede zwischen veränderlichem und unveränderlichem Java:

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests & andere

 Veränderliche vs unveränderliche Informationen

 Mutable vs Immutable info

Hauptunterschiede zwischen Mutable vs Immutable Java

Im Folgenden sind die wichtigsten Unterschiede zwischen veränderlichen und unveränderlichen Objekten in Java aufgeführt:

  • Veränderliche Objekte sind Objekte, bei denen wir den Status eines Objekts ändern können, ohne ein neues Objekt zu erstellen. Das heißt, ein veränderliches Objekt kann nach seiner Erstellung geändert werden. Bei unveränderlichen Objekten erhalten wir jedes Mal, wenn der Status eines Objekts geändert wird, ein neues Objekt. Beim Umgang mit unveränderlichen Objekten dürfen wir den Status eines Objekts nach seiner Erstellung nicht ändern.
  • Veränderliche Objekte stellen im Allgemeinen Methoden bereit, mit denen der Inhalt von Objekten geändert werden kann, während unveränderliche Objekte keine Methode zum Ändern ihres Inhalts bereitstellen.
  • In veränderlichen Java-Klassen sind Getter- und Setter-Methoden vorhanden, während in unveränderlichen Klassen nur Getter-Methoden und keine Setter-Methoden verfügbar sind.
  • Veränderliche Klassen können threadsicher sein oder nicht, während unveränderliche Klassen standardmäßig threadsicher sind.
  • Beispiele für veränderliche Klassen in Java sind Java.util.Date, StringBuffer, StringBuilder usw., während Java-Legacy-Klassen, Wrapper-Klassen und String-Klassen Beispiele für unveränderliche Klassen in Java sind.

Mutable vs Immutable Java Vergleichstabelle

Lassen Sie uns den Top-Vergleich zwischen Mutable vs Immutable Java diskutieren:

Veränderbar

Unveränderlich

Ein veränderbares Java-Objekt kann nach seiner Erstellung geändert werden. Unveränderliches Java-Objekt kann nach seiner Erstellung nicht geändert werden.
Es wird kein neues Objekt gebildet, wenn Änderungen an einem vorhandenen Objekt vorgenommen werden. Jedes Mal, wenn ein vorhandenes Objekt geändert wird, wird ein neues Objekt gebildet.
Es bietet Methoden, um den Inhalt eines Objekts zu ändern. Es werden keine Methoden zum Ändern des Inhalts eines Objekts bereitgestellt.
Getter- und Setter-Methoden sind in veränderlichen Klassen vorhanden. Es sind nur Getter-Methoden vorhanden und keine Setter-Methoden.
Veränderbare Klassen können threadsicher sein oder nicht. Unveränderliche Klassen sind standardmäßig threadsicher.
Einige gängige Beispiele für veränderliche Klassen in Java sind StringBuffer, StringBuilder und Java.util.Datum. Alle Legacy-Klassen, Wrapper-Klassen und String-Klassen sind gängige Beispiele für unveränderliche Klassen in Java.

Veränderbares und unveränderliches Java mit Beispielen

Veränderliches und unveränderliches Java mit Beispielen sind unten angegeben:

Beispiel #1 – Veränderbare Klasse in Java

Jetzt sehen wir Java-Codebeispiele, die die Erstellung veränderlicher und unveränderlicher Klassen in Java zeigen.

Artikelnummer:

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());
}
}

Ausgang:

 Veränderliches vs unveränderliches Java-1.1

 Veränderlich vs unveränderlich Java-1.1

Der obige Code zeigt die Erstellung einer veränderlichen Klasse in Java mit Gettern und Setzern.

Beispiel # 2 – Unveränderliche Klasse in Java

Jetzt werden wir sehen, wie wir unveränderliche Klassen in Java erstellen können.

Artikelnummer:

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());
}
}

Ausgang:

 Veränderliches vs unveränderliches Java-1.2

 Veränderliches vs unveränderliches Java-1.2

Der obige Code zeigt die Erstellung der unveränderlichen Java-Klasse. Die folgenden Punkte sind beim Erstellen einer unveränderlichen Klasse zu beachten:

  • Eine unveränderliche Klasse muss final sein, da sie nicht vererbt werden sollte.
  • Alle Felder einer unveränderlichen Klasse sollten endgültig gemacht werden.
  • Wenn ein veränderliches Objekt als Feld in einer unveränderlichen Klasse verwendet wird, muss eine spezielle Behandlung implementiert werden, um zu verhindern, dass sein Inhalt geändert wird.
  • Ein öffentlicher Konstruktor sollte vorhanden sein.
  • Getter-Methoden für alle Variablen sollten definiert werden.
  • Setter-Methoden sollten für keine Variablen vorhanden sein.

Fazit

Aus der obigen Diskussion haben wir ein klares Verständnis der Unterschiede zwischen veränderlich und unveränderlich in Java. Außerdem haben wir Java-Beispiele gesehen, die zeigen, wie veränderliche und unveränderliche Klassen erstellt werden. Es ist wichtig zu beachten, dass unveränderliche Klassen standardmäßig threadsicher sind, während veränderliche Klassen threadsicher sein können oder nicht.

Empfohlene Artikel

Dies ist eine Anleitung zu Mutable vs Immutable Java. Hier diskutieren wir auch die wichtigsten Unterschiede zwischen veränderlichem und unveränderlichem Java mit Infografiken und Vergleichstabelle. Sie können auch einen Blick auf die folgenden Artikel werfen, um mehr zu erfahren –

  1. Java BufferedReader
  2. StringBuffer-Klasse in Java
  3. Java RuntimeException
  4. Java newInstance()
0 Anteile

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.