Was ist der Unterschied zwischen veränderlich und unveränderlich in Java?



Dieser Artikel über veränderlich und unveränderlich in Java ist eine umfassende Anleitung zu den Unterschieden zwischen ihnen und erläutert auch, warum Java-Zeichenfolgen unveränderlich sind.

Java ist eines der beliebtesten bietet verschiedene Konzepte zum Erstellen von Anwendungen, und ein solches Konzept ist in Java veränderlich und unveränderlich. Nun, dieses Konzept beruht auf Änderungen an den Feldern nach der Objekterstellung und erleichtert somit die Programmierung für . In diesem Artikel über veränderlich und unveränderlich in Java werde ich die folgenden Themen behandeln:

Was ist ein veränderliches Objekt?





Die Objekte, in denen Sie die Felder und Zustände nach dem Erstellen des Objekts ändern können, werden als veränderbare Objekte bezeichnet. Beispiel : java.util.Date, StringBuilder usw.

Was ist ein unveränderliches Objekt?



Das Objekte Wenn Sie nach dem Erstellen des Objekts nichts mehr ändern können, werden diese als unveränderliche Objekte bezeichnet. Beispiel : Boxed primitive Objekte wie Integer, Long und etc.

Nachdem Sie nun wissen, was in Java veränderlich und unveränderlich ist, lassen Sie uns vorwärts gehen und die Unterschiede zwischen den beiden erkennen.

wie man einen Iterator in Java verwendet

Unterschied zwischen veränderlichen und unveränderlichen Objekten



In der folgenden Tabelle finden Sie die Unterschiede zwischen veränderlichen und unveränderlichen Objekten in Java.

Veränderlich Unveränderlich
Felder können nach der Objekterstellung geändert werdenFelder können nach der Objekterstellung nicht mehr geändert werden
Bietet im Allgemeinen eine Methode zum Ändern des FeldwertsEs gibt keine Methode zum Ändern des Feldwerts
Hat Getter- und Setter-MethodenHat nur Getter Methode
Beispiel: StringBuilder, java.util.DateBeispiel: String, Boxed primitive Objekte wie Integer, Long und etc.

Nachdem Sie nun die Unterschiede zwischen veränderlichen und unveränderlichen Objekten kennen, wollen wir untersuchen, wie diese erstellt werden Klassen.

Wie erstelle ich eine veränderbare Klasse?

Um eine veränderbare Klasse in Java zu erstellen, müssen Sie sicherstellen, dass die folgenden Anforderungen erfüllt sind:

  1. Geben Sie eine Methode an um die Feldwerte zu ändern
  2. Getter und Setter Methode

Betrachten Sie den folgenden Code:

Beispiel für eine öffentliche Klasse des Pakets edureka {Beispiel für einen privaten String-Coursename (String-Coursename) {this.coursename = Coursename} public String getName () {Rückgabe-Coursename} public void setName (String coursename) {this.coursename = coursename} public static void main (String [] args) {Beispiel obj = neues Beispiel ('Maschinelles Lernen') System.out.println (obj.getName ()) // Aktualisiere den Namen, dieses Objekt ist veränderbares obj.setName ('Maschinelles Lernen Masters') System. out.println (obj.getName ())}}

Sie würden die folgende Ausgabe sehen:

Ausgabe von veränderlichen Objekten - veränderlich und unveränderlich in Java-Edureka

Nachdem Sie nun wissen, wie Sie eine veränderbare Klasse erstellen, schauen wir uns als Nächstes in diesem Artikel an, wie Sie eine unveränderliche Klasse erstellen.

Wie erstelle ich eine unveränderliche Klasse?

Um eine unveränderliche Klasse in Java zu erstellen, müssen Sie sicherstellen, dass die folgenden Anforderungen erfüllt sind:

  1. Eine Klasse sollte als deklariert werden Finale damit es nicht erweitert werden kann.
  2. Alle Felder sollten privat gemacht werden, damit kein direkter Zugriff möglich ist
  3. Keine Setter-Methoden
  4. Machen Sie alle veränderlichen Felder endgültig, damit sie nur einmal zugewiesen werden können.
package edureka public class exampleimmutable {privater endgültiger String-Coursename exampleimmutable (endgültiger String-Coursename) {this.coursename = coursename} öffentlicher endgültiger String getName () {Rückgabe-Coursename} public static void main (String [] args) {Beispiel obj = neues Beispiel ( 'Maschinelles Lernen') System.out.println (obj.getName ())}}

Sie würden die folgende Ausgabe sehen:

Verwendung des Iterators in Java

Okay, jetzt, da Sie über veränderbare und unveränderliche Objekte Bescheid wissen, möchte ich Ihnen sagen, dass Strings in Java unveränderlich sind. Ich bin mir sicher, dass dies eine Frage aufgeworfen hat, warum Zeichenfolgen in Java unveränderlich sind. Schauen wir uns als nächstes in diesem Artikel dasselbe an.

Warum sind Strings in Java unveränderlich?

Java verwendet die Konzepte von . Wenn Sie also ein Beispiel betrachten, in dem viele Referenzvariablen auf ein einzelnes Objekt verweisen, ändert sich der Wert von Objekt werden automatisch alle anderen Referenzvariablen beeinflusst. Auch nach Effektives Java ,Kapitel 4, Seite 73, 2. Ausgabe, sind folgende Gründe, unveränderliche Klassen zu verwenden:

  • Unveränderliche Objekte sind einfach
  • Diese Objekte erfordern keine Synchronisation und sind von Natur aus threadsicher
  • Unveränderliche Objekte sind gute Bausteine ​​für andere Objekte

Wenn ich Sie anhand eines Beispiels erklären muss, dann

Angenommen, Sie haben eine Variable Probenahme , in dem die Zeichenfolge gespeichert ist “ Maschinelles Lernen “. Nun, wenn Sie diese Zeichenfolge mit einer anderen Zeichenfolge verketten '' Meister ', dann das Objekt erstellt für “ Maschinelles Lernen ' wird sich nicht ändern. Stattdessen wird ein neues Objekt für „ Meister des maschinellen Lernens “. Siehe folgendes Bild:

Wie Sie im obigen Bild sehen können, ist die Probenahme Die Referenzvariable bezieht sich auf „Maschinelles Lernen“, jedoch nicht auf die andere Zeichenfolge, auch nach dem Erstellen von zwei Objekten. Damit beenden wir diesen Artikel über Mutable and Immutable in Java. Ich hoffe, euch ist jeder Aspekt klar, den ich oben besprochen habe.

Nachdem Sie die Grundlagen von Java verstanden haben, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieses Blogs „Mutable and Immutable in Java“. Wir werden uns so schnell wie möglich bei Ihnen melden.