Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Tiefergehende Betrachtung von String | String Advanced
Java Erweitert
course content

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Tiefergehende Betrachtung von String

Wie funktioniert String tatsächlich?

Sie wissen bereits, was ein String ist und wie man damit arbeitet. In diesem Kapitel werden die theoretischen Aspekte behandelt, die hinter einem String liegen.

Untersuchen wir die zugrunde liegende Darstellung von String-Werten in Java. Ursprünglich wurde String als Array von char-Werten implementiert, was einfach und intuitiv war. Später erfolgte jedoch eine Umstellung auf ein Array von byte-Werten. Lassen Sie uns die Gründe für diese Änderung verstehen.

Eine char-Variable in Java belegt 2 Bytes Speicher, während eine byte-Variable nur 1 Byte benötigt. Durch die Verwendung von byte-Werten kann der Speicherbedarf erheblich reduziert werden, da nur ein Viertel des Platzes benötigt wird.

Wie kann ein String jedoch verschiedene Zeichen, einschließlich nicht-numerischer, aufnehmen? Der Mechanismus ähnelt dem einer char-Variable. Wir nutzen die ASCII-Tabelle, in der numerische Daten bestimmten Zeichen zugeordnet werden, wodurch eine breite Palette von Zeichen in einem String dargestellt werden kann.

Sehen wir uns eine Illustration an, die den String-Wert "Hello" darstellt:

Die Zellen enthalten Elemente vom Typ byte, die wir aus der ASCII-Tabelle entnehmen. Im Code kann sogar das genaue byte-Array angezeigt werden, das im Wert einer String-Variablen gespeichert ist. Dies kann mit der Methode getBytes() erfolgen.

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }

Wir können sehen, dass die byte-Werte mit denen im obigen Diagramm identisch sind. Zusätzlich kann bei Interesse die ASCII-Tabelle herangezogen werden, um den Code jedes Elements mit seinem entsprechenden Wert zu vergleichen.

Dieses byte[]-Array, das wir von einem String-Objekt erhalten, lässt sich manipulieren.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

course content

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Tiefergehende Betrachtung von String

Wie funktioniert String tatsächlich?

Sie wissen bereits, was ein String ist und wie man damit arbeitet. In diesem Kapitel werden die theoretischen Aspekte behandelt, die hinter einem String liegen.

Untersuchen wir die zugrunde liegende Darstellung von String-Werten in Java. Ursprünglich wurde String als Array von char-Werten implementiert, was einfach und intuitiv war. Später erfolgte jedoch eine Umstellung auf ein Array von byte-Werten. Lassen Sie uns die Gründe für diese Änderung verstehen.

Eine char-Variable in Java belegt 2 Bytes Speicher, während eine byte-Variable nur 1 Byte benötigt. Durch die Verwendung von byte-Werten kann der Speicherbedarf erheblich reduziert werden, da nur ein Viertel des Platzes benötigt wird.

Wie kann ein String jedoch verschiedene Zeichen, einschließlich nicht-numerischer, aufnehmen? Der Mechanismus ähnelt dem einer char-Variable. Wir nutzen die ASCII-Tabelle, in der numerische Daten bestimmten Zeichen zugeordnet werden, wodurch eine breite Palette von Zeichen in einem String dargestellt werden kann.

Sehen wir uns eine Illustration an, die den String-Wert "Hello" darstellt:

Die Zellen enthalten Elemente vom Typ byte, die wir aus der ASCII-Tabelle entnehmen. Im Code kann sogar das genaue byte-Array angezeigt werden, das im Wert einer String-Variablen gespeichert ist. Dies kann mit der Methode getBytes() erfolgen.

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }

Wir können sehen, dass die byte-Werte mit denen im obigen Diagramm identisch sind. Zusätzlich kann bei Interesse die ASCII-Tabelle herangezogen werden, um den Code jedes Elements mit seinem entsprechenden Wert zu vergleichen.

Dieses byte[]-Array, das wir von einem String-Objekt erhalten, lässt sich manipulieren.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 1
some-alt