Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Tiefer in den 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
Tiefer in den String

Wie funktioniert ein String tatsächlich?

Du weißt bereits, was ein String ist und wie man damit arbeitet. Dieses Kapitel behandelt die theoretischen Aspekte dessen, was in einem String steckt.

Lass uns die zugrunde liegende Darstellung von String-Werten in Java erkunden. Ursprünglich wurde String als ein Array von char-Werten implementiert, was einfach und intuitiv war. Später wurde es jedoch in ein Array von byte-Werten umgewandelt. Lass 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 können wir den Speicherbedarf erheblich reduzieren und nur ein Viertel des Platzes nutzen.

Aber wie kann ein String 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, was die Darstellung einer Vielzahl von Zeichen in einem String ermöglicht.

Schauen 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. Wir können sogar im Code das genaue byte-Array sehen, das im Wert einer String-Variablen gespeichert ist. Dies kann mit der Methode getBytes() erfolgen.

java

Main

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 identisch mit denen im obigen Diagramm sind. Wenn Sie interessiert sind, können Sie auch die ASCII-Tabelle konsultieren und den Code jedes Elements mit seinem entsprechenden Wert vergleichen.

Wir können dieses byte[]-Array manipulieren, das wir von einem String-Objekt erhalten.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 1
We're sorry to hear that something went wrong. What happened?
some-alt