Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen String-Pool, Methode Equals() | Zeichenkette
Java-Grundlagen
course content

Kursinhalt

Java-Grundlagen

Java-Grundlagen

1. Erste Schritte
2. Grundtypen und Operationen
3. Schleifen
4. Arrays
5. Zeichenkette

book
String-Pool, Methode Equals()

Die equals()-Methode

Dieses Kapitel bietet einen kurzen Überblick über die Methode equals(). Diese Methode wird verwendet, um Objekte zu vergleichen, und wird häufig mit String-Objekten eingesetzt. Betrachten wir ein Beispiel, in dem zwei identische String-Variablen erstellt und mit == verglichen werden:

java

Main

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }

In der Ausgabe erhalten wir "false", aber warum? Die Werte der beiden String-Variablen sind gleich und entsprechen "string". Das liegt daran, dass == die Referenzen auf Objekte im Speicher vergleicht und nicht die tatsächlichen Werte. Unsere Objekte befinden sich außerhalb des String-Pools.

String-Pool

Was ist der String-Pool? Es handelt sich um einen Bereich im Heap-Speicher, der beim Erstellen von String-Objekten zugewiesen wird. Wenn wir ein String-Objekt mit dem Wert "string" erstellen und anschließend ein weiteres String-Objekt mit demselben Wert erzeugen, verweisen beide Objekte auf dasselbe Objekt im Speicher, das sich im String-Pool befindet.

Warum haben wir in unserem Fall also "false" erhalten? Das liegt daran, dass wir den String-Pool umgangen haben, indem wir Objekte mit der Syntax String first = new String("string"); erstellt haben. Wenn wir ein String-Objekt mit einer anderen Syntax wie String first = "string"; erzeugen, wird es im String-Pool abgelegt.

Betrachten wir ein Beispiel für einen Code:

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }

Betrachten wir ein Diagramm, das erklärt, wie es funktioniert und welche Objekte sich im String Pool befinden.

Wie vergleichen wir die Werte von Strings im String Pool und solchen außerhalb davon? Zu diesem Zweck stellt Java die Methode equals bereit, die die Werte unserer String-Objekte anstelle ihrer Referenzen vergleicht. Betrachten wir ein Beispiel, in dem wir Strings mit der Methode equals anstelle von == vergleichen.

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }

Nun können wir sehen, dass wir den korrekten Vergleich haben.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 7

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

Java-Grundlagen

Java-Grundlagen

1. Erste Schritte
2. Grundtypen und Operationen
3. Schleifen
4. Arrays
5. Zeichenkette

book
String-Pool, Methode Equals()

Die equals()-Methode

Dieses Kapitel bietet einen kurzen Überblick über die Methode equals(). Diese Methode wird verwendet, um Objekte zu vergleichen, und wird häufig mit String-Objekten eingesetzt. Betrachten wir ein Beispiel, in dem zwei identische String-Variablen erstellt und mit == verglichen werden:

java

Main

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }

In der Ausgabe erhalten wir "false", aber warum? Die Werte der beiden String-Variablen sind gleich und entsprechen "string". Das liegt daran, dass == die Referenzen auf Objekte im Speicher vergleicht und nicht die tatsächlichen Werte. Unsere Objekte befinden sich außerhalb des String-Pools.

String-Pool

Was ist der String-Pool? Es handelt sich um einen Bereich im Heap-Speicher, der beim Erstellen von String-Objekten zugewiesen wird. Wenn wir ein String-Objekt mit dem Wert "string" erstellen und anschließend ein weiteres String-Objekt mit demselben Wert erzeugen, verweisen beide Objekte auf dasselbe Objekt im Speicher, das sich im String-Pool befindet.

Warum haben wir in unserem Fall also "false" erhalten? Das liegt daran, dass wir den String-Pool umgangen haben, indem wir Objekte mit der Syntax String first = new String("string"); erstellt haben. Wenn wir ein String-Objekt mit einer anderen Syntax wie String first = "string"; erzeugen, wird es im String-Pool abgelegt.

Betrachten wir ein Beispiel für einen Code:

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }

Betrachten wir ein Diagramm, das erklärt, wie es funktioniert und welche Objekte sich im String Pool befinden.

Wie vergleichen wir die Werte von Strings im String Pool und solchen außerhalb davon? Zu diesem Zweck stellt Java die Methode equals bereit, die die Werte unserer String-Objekte anstelle ihrer Referenzen vergleicht. Betrachten wir ein Beispiel, in dem wir Strings mit der Methode equals anstelle von == vergleichen.

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }

Nun können wir sehen, dass wir den korrekten Vergleich haben.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 7
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?
some-alt