Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Approfondimento Sulle Stringhe | String Avanzato
Java Avanzato
course content

Contenuti del Corso

Java Avanzato

Java Avanzato

1. Struttura Profonda di Java
2. Metodi
3. String Avanzato
4. Classi
5. Classi Avanzate

book
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

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(); } }

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.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

course content

Contenuti del Corso

Java Avanzato

Java Avanzato

1. Struttura Profonda di Java
2. Metodi
3. String Avanzato
4. Classi
5. Classi Avanzate

book
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

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(); } }

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.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 1
some-alt