Immutabilità delle Stringhe in Java
Scorri per mostrare il menu
Sai già che le stringhe memorizzano testo come nomi di clienti, nomi di prodotti e messaggi. Ma una caratteristica che rende le stringhe speciali in Java è che sono immutabili.
L'immutabilità significa che, una volta creato un oggetto String, il suo contenuto non può essere modificato. Qualsiasi operazione che sembra modificare una stringa in realtà crea un nuovo oggetto String dietro le quinte.
Esempio
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Anche se entrambe le variabili sono state riassegnate, si comportano in modo diverso internamente. Con int, la variabile memorizza direttamente il valore — la riassegnazione semplicemente lo sostituisce. Ma String è un tipo riferimento, il che significa che la variabile memorizza un indirizzo che punta a un oggetto String in memoria. Quando viene assegnato drink = "Cappuccino", Java non modifica "Espresso" — crea un nuovo oggetto String e fa sì che drink punti a quest'ultimo. L'oggetto originale "Espresso" rimane invariato.
Come funziona passo dopo passo
String drink = "Espresso";
Java crea un oggetto String "Espresso" e drink punta a esso.
drink = "Cappuccino";
Java crea un nuovo oggetto String "Cappuccino", ora drink punta a quello nuovo. "Espresso" non viene toccato.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Immutabilità delle Stringhe in Java
Sai già che le stringhe memorizzano testo come nomi di clienti, nomi di prodotti e messaggi. Ma una caratteristica che rende le stringhe speciali in Java è che sono immutabili.
L'immutabilità significa che, una volta creato un oggetto String, il suo contenuto non può essere modificato. Qualsiasi operazione che sembra modificare una stringa in realtà crea un nuovo oggetto String dietro le quinte.
Esempio
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Anche se entrambe le variabili sono state riassegnate, si comportano in modo diverso internamente. Con int, la variabile memorizza direttamente il valore — la riassegnazione semplicemente lo sostituisce. Ma String è un tipo riferimento, il che significa che la variabile memorizza un indirizzo che punta a un oggetto String in memoria. Quando viene assegnato drink = "Cappuccino", Java non modifica "Espresso" — crea un nuovo oggetto String e fa sì che drink punti a quest'ultimo. L'oggetto originale "Espresso" rimane invariato.
Come funziona passo dopo passo
String drink = "Espresso";
Java crea un oggetto String "Espresso" e drink punta a esso.
drink = "Cappuccino";
Java crea un nuovo oggetto String "Cappuccino", ora drink punta a quello nuovo. "Espresso" non viene toccato.
Grazie per i tuoi commenti!