LA CLASSE STRING

java-logoLa classe String dopo i tipi primitivi è una delle classi più usate in assoluto. Si trova nel package java.lang, uno dei package predefiniti che non necessita di importazioni. Ammette la creazione di istanze anche con il formato literal, costituito su una coppia di doppi apici. Dato che String è un oggetto una stringa può essere creata anche con l’operatore new. La figura evidenzia tutti i modi per poter creare una istanza di tale classe.

Creare istanze

La seconda particolarità delle stringhe è che sono oggetti immutabili. Per capire questo concetto ritorniamo ai reference type. Vediamo un esempio.

CC

Anche se gli attributi sono uguali gli oggetti in figura sono comunque distinti. Quando usiamo le stringhe il Runtime di Java gestisce una particolare area di memoria che si chiama String Pool al cui interno sono contenute le varie stringhe.

String Pool

Se due oggetti stringa hanno lo stesso contenuto, i due reference vengono fatti puntare alla stessa area di memoria. Quando creiamo una stringa Java controlla nello String Pool che il valore della stringa non sia già presente. Se presente per una questione di efficienza viene usato lo stesso reference.  Se modifichiamo una stringa la verifica viene fatta nuovamente e se l’oggetto non esiste viene allocata memoria per contenere la nuova stringa.

istanze

Per questo motivo le stringhe sono immutabili, cioè non si possono alterare i loro valori, quando viene assegnato un nuovo set di caratteri viene creata una nuova istanza di String in una diversa area di memoria.

METODI DELLA CLASSE STRING

Passiamo in rassegna alcuni metodi della classe String (vedi figura).

Metodi 1

Altri metodi della classe String (vedi figura).

Metodi 2

USARE ARGOMENTI DELLA COMMAND LINE

Completeremo la conoscenza del metodo main ora che conosciamo gli Array e la classe String.

Metodo main

Quando il metodo main è presente in una classe, questa diventa eseguibile, cioè produce un bytecode che la JVM può direttamente eseguire da terminale. L’esecuzione del programma inizia esattamente dentro al metodo main. Deve essere public, questo perché deve essere visibile al di fuori della classe visto che la JVM lo deve elaborare. È un metodo di classe (static) questo perché la JVM non deve aver bisogno di istanziare la classe che lo contiene. Non torna nulla void, quando terminano le istruzioni nel main il programma termina. Il metodo main prende in ingresso come parametro un Array di stringhe e questo Array si chiama args. Esso contiene i valori passati dal terminale al metodo main.

For Each
Parametri dalla command line

LINK AI POST PRECEDENTI

IL LINGUAGGIO JAVA

LINK AL CODICE SU GITHUB

GITHUB

ESECUZIONE DEL CODICE DI ESEMPIO

  • Scaricare il codice da GITHUB, lanciare il file JAR con il seguente comando in Visual Studio Code, posizionandosi nella directory contenente il JAR.

        java -jar –enable-preview CorsoJava.jar

  • Oppure mettere in esecuzione il main che si trova nel file CorsoJava.java.