Tutorials  /  Security

Warum String in Java unveränderlich ist

Ccentron Redaktion · Januar 2024 ·3 Min. Lesezeit ·Security, Tutorial

Warum String in Java unveränderlich ist, ist eine der beliebtesten Interviewfragen. Der String ist eine der am häufigsten verwendeten Klassen in jeder Programmiersprache. Wir wissen, dass String in Java unveränderlich und endgültig ist. Die Java-Laufzeit verwaltet einen String-Pool, der ihn zu einer besonderen Klasse macht.

Warum ist String in Java unveränderlich?

Warum String in Java unveränderlich und endgültig ist. Lassen Sie uns einige der Vorteile der Unveränderlichkeit von String betrachten, die uns helfen werden zu verstehen, warum String in Java unveränderlich ist.

SEC

Passende Infrastruktur bei centron

Absicherung endet nicht beim Server: Cloud Firewalls filtern den Datenverkehr vor der VM – zentral verwaltet, ohne Aufpreis je Regel. Cloud Firewalls ansehen →

String-Pooling

String-Pooling ist nur möglich, weil String in Java unveränderlich ist. Auf diese Weise spart die Java-Laufzeitumgebung eine Menge Heap-Speicherplatz, da verschiedene String-Variablen auf dieselbe String-Variable im Pool verweisen können. Wäre String nicht unveränderlich, dann wäre String-Interning nicht möglich, denn wenn eine Variable ihren Wert geändert hätte, wäre dies auch in den anderen Variablen zu sehen gewesen.

Sicherheitsbedrohung

Wenn String nicht unveränderlich ist, würde dies eine ernsthafte Sicherheitsbedrohung für die Anwendung darstellen. Zum Beispiel werden Benutzername und Passwort der Datenbank als String übergeben, um eine Datenbankverbindung herzustellen, und bei der Socket-Programmierung werden Host- und Port-Details als String übergeben. Da String unveränderlich ist, kann sein Wert nicht geändert werden, da sonst jeder Hacker den referenzierten Wert ändern könnte, um Sicherheitsprobleme in der Anwendung zu verursachen.

Multithreading-Sicherheit

Da String unveränderlich ist, ist er sicher für Multithreading. Eine einzelne String-Instanz kann von verschiedenen Threads gemeinsam genutzt werden. Dies vermeidet die Verwendung von Synchronisierung für Thread-Sicherheit. Strings sind implizit thread-sicher.

Classloader-Sicherheit

Strings werden im Java Classloader verwendet und die Unveränderlichkeit bietet die Sicherheit, dass die richtige Klasse vom Classloader geladen wird. Stellen Sie sich zum Beispiel einen Fall vor, in dem Sie versuchen, die Klasse java.sql.Connection zu laden, aber der referenzierte Wert wird in die Klasse myhacked.Connection geändert, die unerwünschte Dinge mit Ihrer Datenbank anstellen kann.

Effizienz und HashMap-Schlüssel

Da String unveränderlich ist, wird sein Hashcode zum Zeitpunkt der Erstellung zwischengespeichert und muss nicht erneut berechnet werden. Das macht ihn zu einem hervorragenden Kandidaten für den Schlüssel in einer Map und seine Verarbeitung ist schneller als die anderer HashMap-Schlüsselobjekte. Aus diesem Grund wird der String am häufigsten als HashMap-Schlüssel verwendet.

Dies sind einige der Gründe, die mir einfallen, um die Vorteile der Unveränderlichkeit von Strings aufzuzeigen. Es ist eine großartige Eigenschaft der Java String-Klasse und macht sie zu etwas Besonderem. Lesen Sie diesen Beitrag, um zu erfahren, wie Sie Ihre eigene unveränderliche Klasse schreiben können.

Sie können weitere Java String Beispiele aus unserem GitHub Repository auschecken.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Security
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren