Care este diferența dintre Mutable și Immutable In Java?



Acest articol despre Mutable and Immutable in Java este un ghid cuprinzător pentru diferențele dintre ele și, de asemenea, discută de ce șirurile Java sunt imuabile.

Java fiind unul dintre cele mai populare oferă diverse concepte pentru crearea de aplicații, iar un astfel de concept este Mutable And Immutable in Java. Ei bine, acest concept se bazează pe modificarea câmpurilor după crearea obiectului și astfel ușurează programarea pentru . Deci, în acest articol despre modificabile și imuabile în Java, voi discuta următoarele subiecte:

Ce este obiectul mutabil?





ce este cadrul în java

Obiectele în care puteți schimba câmpurile și stările după crearea obiectului sunt cunoscute sub numele de obiecte mutabile. Exemplu : java.util.Date, StringBuilder etc.

Ce este obiectul imuabil?



obiecte în care nu puteți schimba nimic odată ce obiectul este creat sunt cunoscute ca obiecte imuabile. Exemplu : Obiecte primitive în cutie precum Întreg, Lung și etc.

Deci, acum că știți ce este mutabil și imuabil în java, să mergem înainte și să vedem diferențele dintre cele două.

Diferența dintre obiectele mutabile și imuabile



Puteți consulta tabelul următor pentru diferențele dintre obiectele mutabile și imuabile din Java.

Mutabil Imuabil
Câmpurile pot fi modificate după crearea obiectuluiCâmpurile nu pot fi modificate după crearea obiectului
În general oferă o metodă de modificare a valorii câmpuluiNu are nicio metodă pentru a modifica valoarea câmpului
Are metode Getter și SetterAre doar metoda Getter
Exemplu: StringBuilder, java.util.DateExemplu: Șir, obiecte primitive în cutie, cum ar fi Număr întreg, Lung și etc.

Acum, că cunoașteți diferențele dintre obiectele mutabile și imuabile, să analizăm cum să le creăm clase.

Cum se creează o clasă Mutable?

Pentru a crea o clasă mutabilă în Java, trebuie să vă asigurați că sunt îndeplinite următoarele cerințe:

  1. Furnizați o metodă pentru a modifica valorile câmpului
  2. Metoda Getter și Setter

Luați în considerare următorul cod:

package 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) {exemplu obj = exemplu nou („Învățare automată”) System.out.println (obj.getName ()) // actualizează numele, acest obiect este modificabil Sistem obj.setName („Maestru de învățare automată”) Sistem. out.println (obj.getName ())}}

Veți vedea următoarea ieșire:

Ieșire obiect mutabil - Mutabil și imuabil în Java- Edureka

masa cassandra vs familia de coloane

Deci, acum, când știți cum să creați o clasă mutabilă, în acest articol, să analizăm cum să creați o clasă imuabilă.

Cum se creează o clasă imuabilă?

Pentru a crea o clasă imuabilă în Java, trebuie să vă asigurați că sunt îndeplinite următoarele cerințe:

  1. O clasă ar trebui declarată ca final astfel încât să nu poată fi extins.
  2. Toate câmpurile ar trebui să fie private, astfel încât accesul direct să nu fie permis
  3. Fără metode de setare
  4. Faceți ca toate câmpurile mutabile să fie finale, astfel încât să poată fi atribuite o singură dată.
pachet 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) {exemplu obj = nou exemplu ( „Învățare automată”) System.out.println (obj.getName ())}}

Veți vedea rezultatul de mai jos:

Bine, așa că acum, când știți despre obiecte mutabile și imuabile, permiteți-mi să vă spun că șirurile sunt imuabile în Java. Acum, sunt sigur că acest lucru ar fi ridicat o întrebare, de ce sunt șirurile imuabile în Java. Deci, în acest articol, să ne uităm la același lucru.

programare socket client server în java

De ce sunt șirurile imuabile în Java?

Java folosește conceptele de . Deci, dacă luați în considerare un exemplu în care aveți multe variabile de referință referitoare la un singur obiect, atunci chiar dacă o variabilă de referință schimbă valoarea obiect , automat toate celelalte variabile de referință vor fi afectate. De asemenea, conform Java eficient ,capitolul 4, pagina 73, ediția a II-a, următoarele sunt motive pentru utilizarea claselor imuabile:

  • Obiectele imuabile sunt simple
  • Aceste obiecte nu necesită sincronizare și sunt inerent sigure
  • Obiectele imuabile constituie elemente constructive bune pentru alte obiecte

Dacă trebuie să vă explic cu un exemplu, atunci,

Să spunem că aveți o variabilă samplestring , care stochează șirul „ Învățare automată „. Acum, dacă concatenați acest șir cu un alt șir ' studii de masterat ', apoi obiectul creat pentru „ Învățare automată ”Nu se va schimba. În schimb, va fi creat un nou obiect pentru „ Maeștri de învățare automată „. Consultați imaginea de mai jos:

După cum puteți vedea în imaginea de mai sus, samplestring variabila de referință se referă la „Învățarea automată”, dar nu la celălalt șir, chiar și după crearea a două obiecte. Cu aceasta, ajungem la sfârșitul acestui articol despre Mutable and Immutable in Java. Sper că voi sunteti clari cu privire la fiecare aspect pe care l-am discutat mai sus.

Acum că ați înțeles elementele de bază ale Java, verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul de formare și certificare Java J2EE și SOA al Edureka este conceput pentru studenți și profesioniști care doresc să fie dezvoltator Java. Cursul este conceput pentru a vă oferi un început important în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog „Mutabil și imuabil în Java” și vă vom contacta cât mai curând posibil.