Mutevole vs Immutabile Java

Mutevole vs Immutabile

Mutevole vs Immutabile

Differenza Tra Mutevole vs Immutabile Java

oggetti Mutabili sono i campi che possono essere modificati, gli oggetti immutabili non hanno campi che possono essere modificate dopo la creazione dell’oggetto. Gli oggetti immutabili sono oggetti il cui stato non può cambiare dopo che sono stati creati. Mutabile e immutabile sono due categorie di oggetti in java. In questo articolo, vedremo le differenze tra oggetti mutabili e immutabili in java. Inoltre, vedremo esempi di codice java che mostrano le differenze tra classe mutabile e immutabile in java.

Confronto testa a testa tra Java mutabile vs Immutabile (Infografica)

Di seguito sono riportate le prime 6 differenze tra Java mutabile vs Immutabile:

Avviare Il Software Libero Corso di Sviluppo

sviluppo Web, linguaggi di programmazione, Software testing & altri

Mutevole vs Immutabile info

Mutevole vs Immutabile info

Differenze principali tra Mutevole vs Immutabile Java

di Seguito sono le differenze principali tra mutabili e immutabili oggetti in Java:

  • oggetti Mutabili sono gli oggetti che si possono apportare modifiche allo stato di un oggetto, senza la creazione di un nuovo oggetto. Cioè un oggetto mutabile può essere modificato dopo la sua creazione. Nel caso di oggetti immutabili ogni volta che lo stato di un oggetto viene modificato otteniamo un nuovo oggetto. Mentre si ha a che fare con oggetti immutabili non ci è permesso di cambiare lo stato di un oggetto dopo la sua creazione.
  • Gli oggetti mutabili in generale forniscono metodi attraverso i quali il contenuto degli oggetti può essere modificato mentre gli oggetti immutabili non forniscono alcun metodo per modificare il loro contenuto.
  • Nelle classi java mutabili sono presenti metodi getter e setter mentre nelle classi immutabili sono disponibili solo metodi getter e non metodi setter.
  • Le classi mutabili possono o non possono essere thread-safe mentre le classi immutabili sono di default thread-safe.
  • Esempi di classi mutabili in java sono java.util.Date, StringBuffer, StringBuilder, ecc mentre le classi legacy java, le classi wrapper, la classe String sono esempi di classi immutabili in java.

Tabella di confronto Java mutabile vs immutabile

Discutiamo il confronto superiore tra Java mutabile vs Immutabile:

Mutabile

Immutabile

Java Mutable object può essere modificato dopo la sua creazione. L’oggetto immutabile Java non può essere modificato dopo la sua creazione.
Non viene creato alcun nuovo oggetto quando vengono apportate modifiche a un oggetto esistente. Ogni volta che un oggetto esistente viene modificato, viene creato un nuovo oggetto.
Fornisce metodi per modificare il contenuto di un oggetto. Non fornisce metodi per modificare il contenuto di un oggetto.
I metodi Getter e setter sono presenti nelle classi mutabili. Sono presenti solo i metodi getter e non i metodi setter.
Le classi mutabili possono o non possono essere thread-safe. Le classi immutabili sono thread-safe per impostazione predefinita.
Alcuni esempi comuni di classi mutabili in java sono StringBuffer, StringBuilder e java.util.Data. Tutte le classi Legacy, le classi Wrapper, le classi String sono esempi comuni di classi immutabili in java.

Java mutabile e immutabile con esempi

Java mutabile e immutabile con esempi sono riportati di seguito:

Esempio #1-Classe mutabile in Java

Ora vedremo esempi di codice java che mostrano la creazione di classi mutabili e immutabili in java.

Codice:

package com.edubca.mutabledemo;
public class MutableDemo {
private String studentName;
private int rollNumber;
MutableDemo (String studentName, int rollNumber) {
this.studentName = studentName;
this.rollNumber = rollNumber;
}
public String getStudentName() {
return studentName;
}
// this setter can modify the name
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getRollNumber() {
return rollNumber;
}
// this setter can modify roll number
public void setRollNumber(int rollNumber) {
this.rollNumber = rollNumber;
}
public static void main(String args) {
MutableDemo obj = new MutableDemo ("John" , 100);
System.out.println("Original Name is " + obj.getStudentName());
System.out.println("Original Roll Number is " + obj.getRollNumber());
// update the name, and roll number as is mutable
obj.setStudentName("James");
obj.setRollNumber(102);
System.out.println("Modified Name is " + obj.getStudentName());
System.out.println("Modified Roll Number is " + obj.getRollNumber());
}
}

Uscita:

Java mutabile vs immutabile-1.1

Mutabile vs Immutabile Java-1.1

Il codice sopra mostra la creazione di una classe mutabile in java con getter e setter.

Esempio #2 – Classe immutabile in Java

Ora vedremo come possiamo creare classi immutabili in Java.

Codice:

package com.edubca.immutabledemo;
public final class ImmutableDemo {
final String studentName;
final int rollNumber;
public ImmutableDemo (String studentName, int rollNumber) {
this.studentName = studentName;
this.rollNumber = rollNumber;
}
public String getStudentName() {
return studentName;
}
public int getRollNumber() {
return rollNumber;
}
public static void main(String args) {
ImmutableDemo obj = new ImmutableDemo ("John" , 100);
// Since no getters are available contents cannot be modified.
// Also as variables are declared final they cannot be modified
System.out.println("Name is " + obj.getStudentName());
System.out.println("Roll Number is " + obj.getRollNumber());
}
}

Uscita:

Java mutabile vs immutabile-1.2

Java mutabile vs immutabile-1.2

Il codice di cui sopra mostra la creazione di java classe immutabile. I seguenti punti devono essere tenuti a mente durante la creazione di una classe immutabile:

  • Una classe immutabile deve essere definitiva in quanto non deve essere ereditata.
  • Tutti i campi di una classe immutabile devono essere resi definitivi.
  • Se un oggetto mutabile viene utilizzato come campo in una classe immutabile, è necessario implementare una gestione speciale in modo da impedire che il suo contenuto venga modificato.
  • Dovrebbe essere presente un costruttore pubblico.
  • Devono essere definiti i metodi Getter per tutte le variabili.
  • I metodi Setter non dovrebbero essere presenti per nessuna variabile.

Conclusione

Dalla discussione di cui sopra, abbiamo una chiara comprensione delle differenze tra mutabile e immutabile in java. Inoltre, abbiamo visto esempi java che mostrano come vengono create classi mutabili e immutabili. È importante notare che le classi immutabili sono di default thread-safe mentre le classi mutabili possono o non possono essere thread-safe.

Articoli consigliati

Questa è una guida a Mutable vs Immutable Java. Qui discutiamo anche le differenze chiave Java mutabili vs immutabili con infografica e tabella di confronto. Si può avere anche un’occhiata ai seguenti articoli per saperne di più–

  1. Java BufferedReader
  2. StringBuffer Classe in Java
  3. Java RuntimeException
  4. Java newInstance()
0 Azioni

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.