Immutabile ? Gli sviluppatori di Java progettati classe " String ", come un oggetto immutabile . " Immutabile " significa che il valore della classe non può cambiare una volta il programmatore un'istanza dell'oggetto . Mentre sembrerebbe vantaggioso di usare sempre un oggetto String che ha un valore variabile , alcuni motivi per spiegare perché non è questo il caso . Stringhe immutabili si prestano ad uso nei programmi multi-threaded , aumentare la sicurezza programma , ridurre al minimo l'utilizzo della memoria , e lavorare meglio come valori in strutture di dati quali tabelle hash . Stringhe in programmi multi-threaded
Programmi
sono chiamati multi- threaded , quando depongono le uova che sono note come "fili" che corrono codice contemporaneamente . Quando un programma genera più thread , quei fili spesso lavorano sulle stesse variabili in tempi diversi . Il pericolo è quando due thread condividono una variabile , e un thread cambia il suo valore , mentre la seconda usa ancora . Un meccanismo di " blocco " custodisce tipicamente variabili in situazioni di threading . Con una stringa immutabile , tuttavia, un thread non è interessato con il valore della variabile .
Sicurezza
L'immutabilità delle stringhe aiuta anche con alcuni problemi di sicurezza . Quando un utente inserisce le credenziali di login su un sito web , è teoricamente possibile per lui di cambiare il valore della stringa nome utente o la password prima di passare al sistema. Se questo accade , allora , che l'utente può iniettare codice dannoso per il sistema che lui o lei sta registrando in a . Dal momento che le stringhe sono immutabili , tuttavia, questo non è possibile.
Minimizzare Utilizzo memoria
Quando un programmatore crea un oggetto stringa , che risiede in un oggetto fisso punto in memoria , e il nome della variabile serve come il suo " riferimento ". Poiché il riferimento alla memoria e ciò che la memoria contiene sono due cose separate, questo significa che gli altri nomi di variabili possono anche fare riferimento alla stessa posizione di memoria . Così, quando sono richieste le copie di una stringa , diverse variabili possono fare riferimento alla stessa stringa immutabile , e dal momento che non cambierà , non hanno alcun bisogno di creare copie di una stessa stringa .
Uso in Hashtable Strutture dati
hashtables sono chiamati "dizionari" perché usano le coppie parola chiave-valore per rendere la ricerca della struttura dei dati più facile. Stringhe di solito riferimento a un valore (ad esempio, "nome" = > " Robert" o "età" = > 25) . Dal momento che le stringhe sono immutabili , un programmatore non deve preoccuparsi per la parola chiave di un cambiamento , e di perdere l'accesso a tale valore valore .