Mutable vs Immutable Java

Mutable vs Immutable

Mutable vs Immutable

skillnad mellan Mutable vs Immutable Java

Mutable objekt har fält som kan ändras, de immutable objekten har inga fält som kan ändras efter att objektet har skapats. Oföränderliga objekt är objekt vars tillstånd inte kan förändras efter att de har skapats. Mutable och Immutable är två kategorier av objekt i java. I den här artikeln kommer vi att se skillnaderna mellan muterbara och oföränderliga objekt i java. Vi kommer också att se java-kodexempel som visar skillnader mellan muterbar och oföränderlig klass i java.

Head to Head jämförelse mellan Mutable vs Immutable Java (Infographics)

nedan är de bästa 6 skillnaderna mellan Mutable vs Immutable Java:

starta din kurs för Gratis mjukvaruutveckling

Webbutveckling, programmeringsspråk, programvarutestning & Övrigt

Mutable vs Immutable info

Mutable vs Immutable info

viktiga skillnader mellan Mutable vs Immutable Java

Följande är viktiga skillnader mellan mutable och immutable objects i Java:

  • muterbara objekt är de objekt där vi kan göra ändringar i ett objekts tillstånd utan att skapa ett nytt objekt. Det är ett muterbart objekt kan ändras efter skapandet. När det gäller oföränderliga objekt när ett objekts tillstånd ändras får vi ett nytt objekt. När vi hanterar oföränderliga objekt får vi inte ändra tillståndet för ett objekt efter skapandet.
  • muterbara objekt ger i allmänhet metoder genom vilka objektens innehåll kan ändras medan oföränderliga objekt inte ger någon metod för att ändra innehållet.
  • i föränderliga java klasser getter och setter metoder är närvarande medan i oföränderliga klasser endast getter metoder är tillgängliga och inte setter metoder.
  • muterbara klasser kan eller inte kan vara trådsäkra medan oföränderliga klasser är som standard trådsäkra.
  • exempel på muterbara klasser i java är java.util.Datum, StringBuffer, StringBuilder, etc medan java legacy klasser, wrapper klasser, sträng klass är exempel på oföränderliga klasser i java.

Mutable vs Immutable Java jämförelsetabell

Låt oss diskutera den bästa jämförelsen mellan Mutable vs Immutable Java:

föränderlig

oföränderlig

Java Mutable object kan ändras efter skapandet. Java Immutable object kan inte ändras efter skapandet.
inget nytt objekt bildas när ändringar görs i ett befintligt objekt. när ett befintligt objekt ändras bildas ett nytt objekt.
det ger metoder för att ändra innehållet i ett objekt. det ger inte metoder för att ändra innehållet i ett objekt.
Getter och setter metoder finns i föränderliga klasser. endast getter metoder är närvarande och inte setter metoder.
muterbara klasser kan eller inte vara trådsäkra. oföränderliga klasser är trådsäkra som standard.
några vanliga exempel på föränderliga klasser i java är StringBuffer, StringBuilder och java.util.Datum. alla äldre klasser, Wrapper klasser, sträng klass är vanliga exempel på oföränderliga klasser i java.

Muterbar och oföränderlig Java med exempel

Muterbar och oföränderlig Java med exempel ges nedan:

exempel #1 – Muterbar klass i Java

nu kommer vi att se java-kodexempel som visar skapandet av muterbara och oföränderliga klasser i java.

kod:

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());
}
}

utgång:

Mutable vs Immutable Java-1.1

Mutable vs Immutable Java-1.1

ovanstående kod visar skapandet av en muterbar klass i java med getters och setters.

exempel #2 – oföränderlig klass i Java

nu kommer vi att se hur vi kan skapa oföränderliga klasser i Java.

kod:

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());
}
}

utgång:

Mutable vs Immutable Java-1.2

Mutable vs Immutable Java-1.2

ovanstående kod visar skapandet av java oföränderlig klass. Följande punkter ska hållas i åtanke när du skapar en oföränderlig klass:

  • en oföränderlig klass måste vara slutgiltig eftersom den inte bör ärvas.
  • alla fält i en oföränderlig klass ska göras slutliga.
  • om något muterbart objekt används som ett fält i en oföränderlig klass måste särskild hantering implementeras för att förhindra att dess innehåll ändras.
  • en offentlig konstruktör bör vara närvarande.
  • Getter metoder för alla variabler bör definieras.
  • Setter metoder bör inte vara närvarande för några variabler.

slutsats

från ovanstående diskussion har vi en tydlig förståelse för skillnaderna mellan mutable och immutable i java. Vi har också sett java-exempel som visar hur muterbara och oföränderliga klasser skapas. Det är viktigt att notera att oföränderliga klasser är som standard trådsäkra medan muterbara klasser kanske eller inte är trådsäkra.

Rekommenderade artiklar

Detta är en guide till Mutable vs Immutable Java. Här diskuterar vi också de muterbara vs oföränderliga Java-nyckelskillnaderna med infografik och jämförelsetabell. Du kan också titta på följande artiklar för att lära dig mer–

  1. Java BufferedReader
  2. StringBuffer klass i Java
  3. Java RuntimeException
  4. Java newInstance()
0 aktier

Lämna ett svar

Din e-postadress kommer inte publiceras.