JavaRush /Java Blog /Random-IT /Pausa caffè #105. Perché le stringhe sono immutabili in J...

Pausa caffè #105. Perché le stringhe sono immutabili in Java? Interfaccia in Java ed ereditarietà multipla

Pubblicato nel gruppo Random-IT

Perché le stringhe sono immutabili in Java?

Fonte: Dev.to Prima di capire perché le stringhe sono immutabili in Java, dobbiamo pensare al motivo per cui rendiamo qualcosa immutabile? Pausa caffè #105.  Perché le stringhe sono immutabili in Java?  Interfaccia in Java ed ereditarietà multipla - 1Immutabile significa che una volta creato non possiamo cambiarlo. L'unico motivo per cui possiamo pensare di creare qualcosa di immutabile è per la sincronizzazione quando usati insieme. Questo è il motivo per cui le stringhe sono immutabili. In Java, gli oggetti String vengono condivisi e memorizzati nella cache nello String Pool. È una posizione specifica nell'heap in cui le stringhe vengono archiviate e condivise tra più thread se hanno lo stesso valore. Ad esempio: in un pool di stringhe, se esiste già una stringa con il valore "test" e il programma desidera creare un altro oggetto stringa con lo stesso valore, otterrà lo stesso riferimento invece di creare un nuovo oggetto stringa. Ora sappiamo come vengono archiviate le stringhe nell'heap. Vediamo perché sono invariati.
  1. Il primo motivo dell'immutabilità è la sicurezza del thread. Poiché le righe sono condivise tra più thread nel pool di righe, è necessario limitare qualsiasi thread casuale per modificarlo. Qualsiasi modifica a una riga può influenzare altri thread che accedono alla stessa riga. Se un thread desidera aggiornare il valore di una riga, deve creare un'altra riga e farvi riferimento.

  2. In genere utilizziamo String come chiave in Map . Se le stringhe fossero mutabili, chiunque potrebbe modificare il valore delle stringhe e perderemmo la chiave effettiva.

Interfaccia in Java ed ereditarietà multipla

Fonte: Dev.to Capiamo cos'è l'ereditarietà multipla. L'ereditarietà multipla è una caratteristica di alcuni linguaggi di programmazione orientati agli oggetti in cui un oggetto o una classe può ereditare funzionalità da più di un oggetto genitore o classe genitore. Pausa caffè #105.  Perché le stringhe sono immutabili in Java?  Interfaccia in Java ed ereditarietà multipla - 1Come mostrato nell'immagine sopra, una classe figlia con ereditarietà multipla può avere due o più classi base, ma per ottenere ciò abbiamo bisogno di un'interfaccia.

Interfaccia

Un'interfaccia in Java è il progetto di una classe. Ha costanti statiche e metodi astratti. Cioè, un'interfaccia può contenere solo metodi e variabili astratti, non può avere un corpo del metodo. Non può essere creata allo stesso modo di una classe astratta.

Allora dove dichiariamo il corpo di questi metodi?

Il corpo del metodo viene dichiarato all'interno della classe in cui il metodo è necessario in base alle esigenze del programmatore.

Come dichiarare un'interfaccia?

Un'interfaccia può essere dichiarata utilizzando la parola chiave Interface . Sintassi:
interface interface_name {abstract methods}

Nota

Per utilizzare un'interfaccia dichiarata in una classe, dobbiamo utilizzare la parola chiave implements .

Implementazione?

Per prima cosa creeremo un'interfaccia di stampa e al suo interno creeremo un metodo astratto print() ;
interface printgib{
void print();
}
Ora abbiamo un'interfaccia pronta per l'uso delle classi, quindi creiamo le classi abc e gk e implementiamo l'interfaccia in esse.
public class abc implements printgib{
public void print(){                     //1st implementation of print
System.out.println("I love you 3000");
}
public static void main(String[] args){
abc obj = new abc();
gk obj1 = new gk();
obj.print();
obj1.print();
}
}

class gk implements printgib{
public void print(){                   //2nd implementation of print
System.out.println("I am Gk");
}
}
Come mostrato nel codice sopra, abbiamo ottenuto l'ereditarietà multipla e implementato un'interfaccia. Ora per eseguire il codice, salvare il file e...
javac file_name.java
java abc

Risultato:

Pausa caffè #105.  Perché le stringhe sono immutabili in Java?  Interfaccia in Java ed ereditarietà multipla - 2
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION