Heim >Java >javaLernprogramm >Veränderliches vs. unveränderliches Java

Veränderliches vs. unveränderliches Java

WBOY
WBOYOriginal
2024-08-30 15:41:09433Durchsuche

Veränderliche Objekte verfügen über Felder, die geändert werden können. Die unveränderlichen Objekte verfügen über keine Felder, die nach der Erstellung des Objekts geändert werden können. Unveränderliche Objekte sind Objekte, deren Zustand sich nach ihrer Erstellung nicht ändern kann. Veränderlich und unveränderlich 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.

WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 Probetests

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

Im Folgenden sind die sechs wichtigsten Unterschiede zwischen veränderlichem und unveränderlichem Java aufgeführt:

Veränderliches vs. unveränderliches Java

Hauptunterschiede zwischen veränderbarem und unveränderlichem 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 Änderungen am Zustand eines Objekts vornehmen 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 sich der Zustand eines Objekts ändert, ein neues Objekt. Beim Umgang mit unveränderlichen Objekten ist es uns nicht gestattet, den Zustand eines Objekts nach seiner Erstellung zu ä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 Thread-sicher sein oder auch nicht, während unveränderliche Klassen standardmäßig Thread-sicher sind.
  • Beispiele für veränderliche Klassen in Java sind java.util.Date, StringBuffer, StringBuilder usw., wohingegen Java-Legacy-Klassen, Wrapper-Klassen und String-Klasse Beispiele für unveränderliche Klassen in Java sind.

Vergleichstabelle für veränderliches und unveränderliches Java

Lassen Sie uns den Top-Vergleich zwischen veränderlichem und unveränderlichem Java besprechen:

 Veränderlich

 Mutable

Immutable

Java Mutable object can be modified after its creation. Java Immutable object cannot be modified after its creation.
No new object is formed when changes are made to an existing object. Whenever an existing object is changed, a new object is formed.
It provides methods to change the content of an object. It does not provide methods for changing the content of an object.
Getter and setter methods are present in mutable classes. Only getter methods are present and not setter methods.
Mutable classes may or may not be thread-safe. Immutable classes are thread-safe by default.
Some common examples of mutable classes in java are StringBuffer, StringBuilder, and java.util.Date. All Legacy classes, Wrapper classes, String class, are common examples of Immutable classes in java.

Unveränderlich

Java Mutable-Objekt kann nach seiner Erstellung geändert werden. Java Immutable-Objekt kann nach seiner Erstellung nicht mehr geändert werden.
Es wird kein neues Objekt erstellt, wenn Änderungen an einem vorhandenen Objekt vorgenommen werden. Immer wenn ein vorhandenes Objekt geändert wird, wird ein neues Objekt erstellt.
Es stellt Methoden zum Ändern des Inhalts eines Objekts bereit. 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, keine Setter-Methoden.
Veränderliche Klassen können Thread-sicher sein oder auch nicht. Unveränderliche Klassen sind standardmäßig threadsicher.
Einige häufige Beispiele für veränderbare Klassen in Java sind StringBuffer, StringBuilder und java.util.Date. Alle Legacy-Klassen, Wrapper-Klassen und String-Klassen sind gängige Beispiele für unveränderliche Klassen in Java.

Veränderliches und unveränderliches Java mit Beispielen

Veränderliches und unveränderliches Java mit Beispielen sind unten aufgeführt:

Beispiel #1 – Veränderliche Klasse in Java

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

Code:

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

Ausgabe:

Veränderliches vs. unveränderliches Java

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

Beispiel #2 – Unveränderliche Klasse in Java

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

Code:

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

Ausgabe:

Veränderliches vs. unveränderliches Java

Der obige Code zeigt die Erstellung der unveränderlichen Java-Klasse. Beim Erstellen einer unveränderlichen Klasse sind die folgenden Punkte 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 Bauunternehmer sollte anwesend sein.
  • Getter-Methoden für alle Variablen sollten definiert werden.
  • Setter-Methoden sollten für keine Variablen vorhanden sein.

Fazit

Aus der obigen Diskussion verstehen wir klar die 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änderbare Klassen möglicherweise threadsicher sind.

Das obige ist der detaillierte Inhalt vonVeränderliches vs. unveränderliches Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Veränderbarer String in JavaNächster Artikel:Veränderbarer String in Java