Mutável vs Imutável Java

Mutável vs Imutável

Mutável vs Imutável

Diferença Entre o Mutável vs Imutável Java

objetos Mutáveis têm campos que podem ser modificados, os objetos imutáveis tem nenhuma campos que podem ser alterados depois que o objeto é criado. Objetos imutáveis são objetos cujo estado não pode mudar depois que eles foram criados. Mutável e imutável são duas categorias de objetos no java. Neste artigo, veremos as diferenças entre objetos mutáveis e imutáveis no java. Além disso, veremos exemplos de código java mostrando diferenças entre Classe mutável e imutável em java.

comparação cabeça a cabeça entre Java mutável vs imutável (Infographics)

abaixo estão as 6 maiores diferenças entre Java mutável vs imutável:

Iniciar O Desenvolvimento de Software Livre Curso

desenvolvimento Web, linguagens de programação, teste de Software & outros

Mutável vs Imutável informações

Mutável vs Imutável info

principais Diferenças entre Mutável vs Imutável Java

estas são as principais diferenças entre o mutável e o imutável objetos em Java:

  • objetos Mutáveis são os objetos em que podemos fazer alterações para o estado de um objeto sem criar um novo objeto. Esse é um objeto mutável pode ser modificado após sua criação. No caso de objetos imutáveis sempre que o estado de um objeto é alterado, nós obtemos um novo objeto. Enquanto lidamos com objetos imutáveis não estamos autorizados a mudar o estado de um objeto após a sua criação.
  • objetos mutáveis em casos gerais fornecem métodos através dos quais o conteúdo dos objetos pode ser alterado, enquanto objetos imutáveis não fornecem qualquer método para mudar seu conteúdo.
  • em linguagens de java mutáveis os métodos getter e setter estão presentes, enquanto em classes imutáveis apenas os métodos getter estão disponíveis e não os métodos setter.Classes mutáveis podem ou não ser seguras por thread, enquanto classes imutáveis são por padrão thread-safe.Exemplos de classes mutáveis em java são java.util.Date, StringBuffer, StringBuilder, etc, enquanto que java legacy classes, wrapper classes, String class são exemplos de classes imutáveis em java.

Mutável vs Imutável Java Tabela de Comparação

Vamos discutir superior a comparação entre Mutável vs Imutável Java:

Mutable

Imutável

Java Mutável objeto pode ser modificado após a sua criação. objeto imutável Java não pode ser modificado após sua criação.
nenhum novo objeto é formado quando alterações são feitas a um objeto existente. sempre que um objecto existente é alterado, forma-se um novo objecto.
ele fornece métodos para alterar o conteúdo de um objeto. ele não fornece métodos para mudar o conteúdo de um objeto.
os métodos Getter e setter estão presentes em classes mutáveis. apenas os métodos getter estão presentes e não os métodos setter.
classes mutáveis podem ou não ser thread-safe. classes imutáveis são thread-safe por padrão.
alguns exemplos comuns de classes mutáveis em java são StringBuffer, StringBuilder e java.util.Data. todas as classes legadas, classes Wrapper, classe String são exemplos comuns de classes imutáveis em java.

Java mutável e imutável com exemplos

Java mutável e imutável com exemplos são dados abaixo:

exemplo #1 – Classe mutável em Java

agora vamos ver exemplos de código java mostrando a criação de classes mutáveis e imutáveis em java.

Código:

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

Saída:

Mutável vs Imutável Java-1.1

Mutável vs Imutável Java-1.1

o código acima mostra a criação de uma classe mutável em java com getters e setters.

Exemplo # 2-classe imutável em Java

agora vamos ver como podemos criar classes imutáveis em Java.

Código:

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

Saída:

Mutável vs Imutável Java-1.2

Mutável vs Imutável Java-1.2

O código acima mostra a criação de java imutável classe. Os seguintes pontos devem ser mantidos em mente ao criar uma classe imutável:Uma classe imutável deve ser final, pois não deve ser herdada.Todos os campos de uma classe imutável devem ser tornados definitivos.

  • se qualquer objecto mutável for usado como campo numa classe imutável, então o tratamento especial tem de ser implementado de modo a evitar que o seu conteúdo seja modificado.Deve estar presente um construtor público .
  • Métodos de obtenção para todas as variáveis devem ser definidos.
  • os métodos de ajuste não devem estar presentes para quaisquer variáveis.
  • Conclusion

    From the above discussion, we have a clear understanding of the differences between mutable and imutable in java. Além disso, temos visto exemplos java mostrando como classes mutáveis e imutáveis são criadas. É importante notar que classes imutáveis são por padrão thread-safe, enquanto classes mutáveis podem ou não ser thread-safe.

    artigos recomendados

    este é um guia para Java mutável vs imutável. Aqui também discutimos as diferenças entre chaves Java mutáveis e imutáveis com infografias e tabela de comparação. Você também pode ter um olhar para os artigos a seguir para saber mais–

    1. Java BufferedReader
    2. Classe StringBuffer no Java
    3. Java RuntimeException
    4. Java newInstance()
    0 Ações

    Deixe uma resposta

    O seu endereço de email não será publicado.