Qual è la differenza tra Mutable e Immutable in Java?



Questo articolo su Mutable e Immutable in Java è una guida completa alle differenze tra loro e discute anche perché le stringhe java sono immutabili.

Java è uno dei più popolari fornisce vari concetti per la creazione di applicazioni e uno di questi concetti è Mutabile e immutabile in Java. Bene, questo concetto si basa sull'apportare modifiche ai campi dopo la creazione dell'oggetto e quindi facilita la programmazione per . Quindi, in questo articolo su mutabile e immutabile in Java, tratterò i seguenti argomenti:

Cos'è l'oggetto mutevole?





Gli oggetti in cui è possibile modificare i campi e gli stati dopo la creazione dell'oggetto sono noti come oggetti modificabili. Esempio : java.util.Date, StringBuilder e così via

Cos'è l'oggetto immutabile?



Il oggetti in cui non è possibile modificare nulla una volta creato l'oggetto sono noti come oggetti immutabili. Esempio : Oggetti primitivi in ​​scatola come Integer, Long e così via.

Quindi, ora che sai cosa è mutabile e immutabile in java, andiamo avanti e vediamo le differenze tra i due.

Differenza tra oggetti mutabili e immutabili



È possibile fare riferimento alla seguente tabella per le differenze tra oggetti modificabili e immutabili in Java.

Mutevole Immutabile
I campi possono essere modificati dopo la creazione dell'oggettoI campi non possono essere modificati dopo la creazione dell'oggetto
Fornisce generalmente un metodo per modificare il valore del campoNon dispone di alcun metodo per modificare il valore del campo
Ha metodi Getter e SetterHa solo il metodo Getter
Esempio: StringBuilder, java.util.DateEsempio: String, oggetti primitivi Boxed come Integer, Long e così via

Ora che conosci le differenze tra oggetti mutabili e immutabili, vediamo come crearli classi.

Come creare una classe Mutabile?

Per creare una classe modificabile in Java devi assicurarti che i seguenti requisiti siano soddisfatti:

  1. Fornisci un metodo per modificare i valori del campo
  2. Metodo Getter e Setter

Considera il codice seguente:

che cos'è la visualizzazione dei dati nel tableau
pacchetto edureka public class example {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public static void main (String [] args) {example obj = new example ('Machine Learning') System.out.println (obj.getName ()) // aggiorna il nome, questo oggetto è mutable obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Vedrai il seguente output:

Output di oggetti modificabili - Mutevole e immutabile in Java-Edureka

Quindi, ora che sai come creare una classe mutabile, in questo articolo, esaminiamo come creare una classe immutabile.

Come creare una classe immutabile?

Per creare una classe immutabile in Java devi assicurarti che i seguenti requisiti siano soddisfatti:

  1. Una classe dovrebbe essere dichiarata come finale in modo che non possa essere esteso.
  2. Tutti i campi devono essere resi privati ​​in modo che l'accesso diretto non sia consentito
  3. Nessun metodo di setter
  4. Rendi definitivi tutti i campi modificabili, in modo che possano essere assegnati una sola volta.
pacchetto edureka public class exampleimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {example obj = new example ( 'Machine Learning') System.out.println (obj.getName ())}}

Vedrai l'output di seguito:

Va bene, quindi ora che conosci oggetti mutabili e immutabili, lascia che ti dica che le stringhe sono immutabili in Java. Ora, sono sicuro che questo potrebbe aver sollevato una domanda, sul perché le stringhe sono immutabili in Java. Quindi, nel prossimo articolo, esaminiamo lo stesso.

Perché le stringhe sono immutabili in Java?

Java utilizza i concetti di . Quindi, se consideri un esempio in cui hai molte variabili di riferimento che fanno riferimento a un singolo oggetto, anche se una variabile di riferimento cambia il valore della oggetto , automaticamente verranno influenzate tutte le altre variabili di riferimento. Inoltre, secondo Java efficace ,capitolo 4, pagina 73, 2a edizione, i seguenti sono motivi per utilizzare le classi immutabili:

  • Gli oggetti immutabili sono semplici
  • Questi oggetti non richiedono sincronizzazione e sono intrinsecamente thread-safe
  • Gli oggetti immutabili sono ottimi elementi costitutivi per altri oggetti

Se devo spiegarti con un esempio, allora,

gestione delle sessioni nell'applicazione web java

Supponiamo che tu abbia una variabile samplestring , che memorizza la stringa ' Apprendimento automatico “. Ora, se concatenate questa stringa con un'altra stringa ' Maestri ', quindi l'oggetto creato per ' Apprendimento automatico 'Non cambierà. Verrà invece creato un nuovo oggetto per ' Maestri di machine learning “. Fare riferimento all'immagine sottostante:

Come puoi vedere nell'immagine sopra, il file samplestring La variabile di riferimento fa riferimento a 'Machine Learning', ma non all'altra stringa, anche dopo la creazione di due oggetti. Con questo, arriviamo alla fine di questo articolo su Mutable e Immutable in Java. Spero che voi ragazzi siate chiari su ogni aspetto di cui ho discusso sopra.

Ora che hai compreso le basi di Java, controlla il file da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti per concetti Java sia di base che avanzati insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo blog 'Mutevole e immutabile in Java' e ti risponderemo il prima possibile.