Inhaltsverzeichnis
Java-Endversion
Unveränderlichkeit in Java
Unterschied zwischen endgültig und unveränderlich
StringerBuffer()
Algorithmus
Beispiel
Ausgabe
Fazit
Heim Java javaLernprogramm Endgültiger Vergleich mit Unveränderlichkeit in Java

Endgültiger Vergleich mit Unveränderlichkeit in Java

Aug 26, 2023 pm 09:37 PM
java final 不可变性

Endgültiger Vergleich mit Unveränderlichkeit in Java

Das Schlüsselwort „final“ in Java kann verwendet werden, um konstante Werte zu definieren und zu verhindern, dass Variablen, Methoden oder Klassen geändert oder überschrieben werden. Unveränderlichkeit hingegen beschreibt die Eigenschaft eines Objekts, während seiner gesamten Existenz in einem konstanten Zustand zu bleiben. Sobald ein Objekt gebildet ist, ändert sich sein Wert nicht.

Variablen, Methoden und Klassen werden durch das Schlüsselwort „final“ eingeschränkt, aber die Unveränderlichkeit geht noch einen Schritt weiter und stellt sicher, dass der gesamte Zustand des Objekts erhalten bleibt.

Lassen Sie uns in diesem Artikel die wichtigsten Unterschiede zwischen final und unveränderlich verstehen.

Java-Endversion

Das letzte Schlüsselwort in Java weist mehrere Merkmale auf:

  • Endgültige Variable: Ihr Anfangswert kann nach der Initialisierung nicht geändert werden. Sie werden häufig verwendet, um unveränderliche oder unveränderliche Werte anzugeben.

  • Final-Methoden: Sie können nicht von Unterklassen geändert werden, um sicherzustellen, dass sie sich konsistent verhalten. Sie tragen dazu bei, die Wirksamkeit wichtiger Verfahren aufrechtzuerhalten.

  • Abschlussklassen: Sie können nicht durch andere Klassen erweitert werden und ihre Implementierung wird garantiert nicht verändert. Abschlussklassen werden häufig zum Erstellen von Sicherheits- oder Hilfsklassen verwendet.

  • Initialisierung: Um sicherzustellen, dass die endgültige Variable einen bekannten Wert hat, muss ihr bei der Deklaration oder im Konstruktor ein Wert zugewiesen werden.

  • Leistung: Durch die Verwendung von final kann der Compiler den Code erfolgreicher optimieren und möglicherweise die Leistung verbessern.

  • Sicherheit: Final verbessert die Sicherheit von Java-Programmen, indem es unbefugte Änderungen an sensiblen Daten oder Verhaltensweisen verhindert.

Unveränderlichkeit in Java

In Java ist eine unveränderliche Klasse eine Klasse, deren Inhalt nach der Erstellung nicht mehr geändert werden kann. Um eine unveränderliche Klasse zu erstellen, befolgen Sie diese Anforderungen:

  • Deklarieren Sie Klassen als endgültig, um eine Vererbung zu verhindern.

  • Deklarieren Sie die Datenmitglieder einer Klasse als privat, um den direkten Zugriff einzuschränken.

  • Deklarieren Sie Datenelemente als endgültig, um Änderungen nach der Erstellung des Objekts zu verhindern.

  • Verwenden Sie parametrisierte Konstruktoren, um alle Felder per Deep Copy zu initialisieren und so Änderungen über Objektreferenzen zu verhindern.

  • Geben Sie eine Kopie (tiefe Kopie) des Objekts in der Getter-Methode anstelle der tatsächlichen Objektreferenz zurück, um die Unveränderlichkeit aufrechtzuerhalten.

Indem Sie diese Eigenschaften befolgen, können Sie Ihre eigenen unveränderlichen Klassen in Java erstellen, ähnlich den integrierten unveränderlichen Klassen wie Integer, Boolean, Byte, Short und String.

Unterschied zwischen endgültig und unveränderlich

Bei der Java-Programmierung ist es wichtig, den Unterschied zwischen „endgültig“ und „unveränderlich“ zu verstehen.

  • Final: Objektreferenzen beibehalten und Statusmutationen zulassen

    Beginnen wir mit „Final“. Wenn ein Objekt oder eine Variable in Java als endgültig markiert ist, bedeutet dies, dass die Referenz nicht so geändert werden kann, dass sie auf ein anderes Objekt oder eine andere Variable verweist, nachdem ihr ein Wert zugewiesen wurde. Es ist wichtig zu bedenken, dass die Referenz zwar fest ist, die Verwendung der zugehörigen Setter-Methode jedoch dennoch die Möglichkeit bietet, den Status des Objekts zu ändern. Auch wenn die Referenz selbst nicht geändert werden kann, können Sie dennoch zugängliche Methoden verwenden, um die internen Eigenschaften oder Eigenschaften des Objekts zu ändern. Mit anderen Worten stellt final die Stabilität einer Objektreferenz sicher und ermöglicht gleichzeitig Änderungen an seinem internen Zustand.

  • Unveränderlich: Unveränderliche Werte und Referenzflexibilität

    Lassen Sie uns nun unsere Aufmerksamkeit auf „unveränderlich“ richten. In Java bedeutet Unveränderlichkeit, dass der tatsächliche Wert eines Objekts nach seiner Erstellung nicht mehr geändert werden kann. Im Gegensatz zu Final können Sie jedoch die Referenz selbst ändern und sie einem anderen Objekt oder einer anderen Variablen zuweisen. Das bedeutet, dass der Wert des Objekts zwar gleich bleibt, Sie jedoch seine Referenz ändern können, um auf eine andere Instanz zu verweisen.

  • Anwendung und Geltungsbereich: Endgültig und Unveränderlichkeit

    Der Modifikator „final“ gilt für Variablen in Java und nicht für Objekte. Es betont die Einschränkungen beim Ändern von Referenzen oder Variablen und ermöglicht gleichzeitig die Änderung des Objektzustands. Unveränderlichkeit hingegen gilt für Objekte, was bedeutet, dass ihre Werte nach ihrer Erstellung nicht mehr geändert werden können. Es ist wichtig, den Unterschied zwischen diesen beiden Konzepten zu verstehen, um sicherzustellen, dass sich Java-Programme wie erwartet verhalten.

  • Bedeutung: Objektadresse und Zustandsvariabilität

    Wenn wir ein Objekt oder eine Variable als endgültig deklarieren, erzwingen wir die Beständigkeit seiner Adresse. Mit anderen Worten: Die Referenz bleibt fixiert und verhindert Änderungen an der Position, auf die sie verweist. Im Gegensatz dazu betont die Unveränderlichkeit, dass der Zustand eines einmal erstellten Objekts nicht mehr geändert werden kann. Dies bedeutet, dass die internen Werte des Objekts nicht geändert werden können und somit seine Integrität und Konsistenz während der gesamten Programmausführung gewahrt bleibt.

StringerBuffer()

Dieser Code demonstriert den Unterschied zwischen dem Schlüsselwort „final“ und der Unveränderlichkeit in Java. Das Schlüsselwort „final“ macht eine Variable konstant und verhindert eine Neuzuweisung, während Unveränderlichkeit bedeutet, dass das Objekt selbst nicht geändert werden kann.

Algorithmus

  • Schritt 1: Deklarieren Sie die Variable „sb“ als letztes StringBuffer-Objekt mit dem Anfangswert „Hello“.

  • Schritt 2: Verwenden Sie die Methode append(), um „TP“ an das StringBuffer-Objekt anzuhängen, auf das „sb“ verweist.

  • Schritt 3: Drucken Sie den aktualisierten Wert von „sb“, also „HelloTP“.

  • Schritt 4: Versuch, das neue StringBuffer-Objekt der Variablen „sb“ neu zuzuweisen, was zu einem Fehler bei der Kompilierung führt.

  • Schritt 5: Geben Sie den Wert von „sb“ aus, aber aufgrund des Fehlers im vorherigen Schritt wird diese Zeile nicht ausgeführt.

Beispiel

// Java program to illustrate difference between final and immutability
 
public class Tutorialspoint {
    public static void main(String[] args)
    {
        final StringBuffer sb = new StringBuffer("Hello");
 
        //  We can make changes even though reference variable sb is final

        sb.append("TP");
 
        System.out.println(sb);
 
        // Compile time error will appear here. This is because the final variable cannot be reassigned

        sb = new StringBuffer("Hello World");
 
        System.out.println(sb);
    }
}
Nach dem Login kopieren

Ausgabe

Tutorialspoint.java:16: error: cannot assign a value to final variable sb
        sb = new StringBuffer("Hello World");
        ^
1 error
Nach dem Login kopieren

Fazit

Zusammenfassend lässt sich sagen, dass „Endgültigkeit“ und Unveränderlichkeit in Java sehr unterschiedliche Eigenschaften haben. Das Schlüsselwort „final“ schränkt die Neuzuweisung von Objektreferenzen ein, ermöglicht jedoch die Änderung des Objektstatus.

Im Gegensatz dazu verhindert die Unveränderlichkeit, dass sich der Wert eines Objekts ändert, ermöglicht aber die Neuzuweisung von Referenzen. Für die Entwicklung zuverlässiger Java-Programme ist es wichtig, die Anwendung und den Umfang von „Endgültigkeit“ und Unveränderlichkeit zu verstehen. Wenn ein Objekt oder eine Variable als endgültig deklariert wird, bleibt seine Adresse fest, während die Unveränderlichkeit sicherstellt, dass die internen Werte des Objekts nicht geändert werden können. Der Beispielcode zeigt den Unterschied, wobei „final“ eine Neuzuweisung verhindert, was zu einem Fehler bei der Kompilierung führt.

Das obige ist der detaillierte Inhalt vonEndgültiger Vergleich mit Unveränderlichkeit in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

See all articles