Kursinhalt
Java Erweitert
Java Erweitert
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.
Main
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.
Danke für Ihr Feedback!