- Diferença Entre o Mutável vs Imutável Java
- comparação cabeça a cabeça entre Java mutável vs imutável (Infographics)
- principais Diferenças entre Mutável vs Imutável Java
- Mutável vs Imutável Java Tabela de Comparação
- Java mutável e imutável com exemplos
- exemplo #1 – Classe mutável em Java
- Exemplo # 2-classe imutável em Java
- Conclusion
- artigos recomendados
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
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:
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:
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.
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–
- Java BufferedReader
- Classe StringBuffer no Java
- Java RuntimeException
- Java newInstance()