Contenuti del Corso
Java Avanzato
Java Avanzato
Approfondimento Sulle Stringhe
Come funziona realmente String?
Sai già cos'è una String
e come utilizzarla. Questo capitolo tratterà gli aspetti teorici di ciò che si trova all'interno di una String
.
Esploriamo la rappresentazione sottostante dei valori String
in Java. Inizialmente, String
era implementata come un array di valori char
, soluzione semplice e intuitiva. Successivamente, si è passati a un array di valori byte
. Comprendiamo il motivo di questo cambiamento.
Una variabile char
in Java occupa 2 byte di memoria, mentre una variabile byte
richiede solo 1 byte. Utilizzando valori byte
, si può ridurre significativamente l'uso della memoria, utilizzando solo un quarto dello spazio.
Ma come fa una String
a contenere vari caratteri, inclusi quelli non numerici? Il meccanismo è simile a quello di una variabile char
. Si sfrutta la tabella ASCII, dove i dati numerici sono associati a caratteri specifici, permettendo la rappresentazione di un'ampia gamma di caratteri in una String
.
Osserviamo un'illustrazione che rappresenta il valore String
"Hello":
Le celle contengono elementi di tipo byte
, che vengono presi dalla tabella ASCII. È possibile anche visualizzare nel codice l'esatto array di byte
memorizzato nel valore di una variabile String
. Questo può essere fatto utilizzando il metodo getBytes()
.
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(); } }
Possiamo osservare che i valori byte
sono identici a quelli mostrati nel diagramma sopra. Inoltre, se sei interessato, puoi consultare la tabella ASCII e confrontare il codice di ciascun elemento con il valore corrispondente.
Possiamo manipolare questo array byte[]
che otteniamo da un oggetto String
.
Grazie per i tuoi commenti!