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