Qual é a diferença entre Mutable e Immutable In Java?



Este artigo sobre Mutable and Immutable in Java é um guia abrangente para as diferenças entre eles e também discute por que as strings de java são imutáveis.

Java sendo um dos mais populares fornece vários conceitos para a criação de aplicativos, e um desses conceitos é Mutable And Immutable in Java. Bem, este conceito se baseia em fazer alterações nos campos após a criação do objeto e, portanto, facilita a programação para . Portanto, neste artigo sobre mutável e imutável em Java, discutirei os seguintes tópicos:

O que é objeto mutável?





Os objetos nos quais você pode alterar os campos e estados após a criação do objeto são conhecidos como objetos mutáveis. Exemplo : java.util.Date, StringBuilder e etc.

O que é objeto imutável?



o objetos nos quais você não pode alterar nada uma vez que o objeto é criado, são conhecidos como objetos imutáveis. Exemplo : Objetos primitivos encaixotados como Inteiro, Longo e etc.

Então, agora que você sabe o que é mutável e imutável em java, vamos seguir em frente e ver as diferenças entre os dois.

Diferença entre objetos mutáveis ​​e imutáveis



Você pode consultar a tabela a seguir para as diferenças entre objetos mutáveis ​​e imutáveis ​​em Java.

Mutável Imutável
Os campos podem ser alterados após a criação do objetoOs campos não podem ser alterados após a criação do objeto
Geralmente fornece um método para modificar o valor do campoNão possui nenhum método para modificar o valor do campo
Possui métodos Getter e SetterTem apenas o método Getter
Exemplo: StringBuilder, java.util.DateExemplo: String, objetos primitivos em caixa como Integer, Long e etc

Agora que você conhece as diferenças entre objetos mutáveis ​​e imutáveis, vamos ver como criá-los Aulas.

Como criar uma classe mutável?

Para criar uma classe mutável em Java, você deve garantir que os seguintes requisitos sejam atendidos:

  1. Forneça um método para modificar os valores dos campos
  2. Método Getter e Setter

Considere o seguinte código:

pacote 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) {example obj = new example ('Machine Learning') System.out.println (obj.getName ()) // atualiza o nome, este objeto é mutável obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Você veria a seguinte saída:

Saída de objeto mutável - mutável e imutável em Java- Edureka

como aprender pl sql

Agora que você sabe como criar uma classe mutável, a seguir neste artigo, vamos ver como criar uma classe imutável.

Como criar uma classe Imutável?

Para criar uma classe imutável em Java, você deve garantir que os seguintes requisitos sejam atendidos:

  1. Uma classe deve ser declarada como final para que não possa ser estendido.
  2. Todos os campos devem ser privados para que o acesso direto não seja permitido
  3. Sem métodos setter
  4. Torne todos os campos mutáveis ​​finais, de modo que possam ser atribuídos apenas uma vez.
pacote 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) {example obj = new example ( 'Machine Learning') System.out.println (obj.getName ())}}

Você veria o resultado abaixo:

Tudo bem, agora que você sabe sobre objetos mutáveis ​​e imutáveis, deixe-me dizer que Strings são imutáveis ​​em Java. Agora, tenho certeza de que isso pode ter levantado uma questão sobre por que as strings são imutáveis ​​em Java. Então, a seguir neste artigo, vamos examinar o mesmo.

Por que as strings são imutáveis ​​em Java?

Java usa os conceitos de . Portanto, se você considerar um exemplo onde você tem muitas variáveis ​​de referência referindo-se a um único objeto, mesmo que uma variável de referência mude o valor do objeto , automaticamente todas as outras variáveis ​​de referência serão afetadas. Além disso, de acordo com Java eficaz ,capítulo 4, página 73, 2ª edição, as seguintes são razões para usar classes Imutáveis:

relacionamento é-um e tem-um em java
  • Objetos imutáveis ​​são simples
  • Esses objetos não requerem sincronização e são inerentemente seguros para threads
  • Objetos imutáveis ​​são bons blocos de construção para outros objetos

Se eu tiver que te explicar com um exemplo, então,

Digamos que você tenha uma variável samplestring , que armazena a string “ Aprendizado de Máquina “. Agora, se você concatenar esta string com outra string ' Mestres ', então o objeto criado para “ Aprendizado de Máquina ' não mudará. Em vez disso, um novo objeto será criado para “ Mestres em aprendizado de máquina “. Consulte a imagem abaixo:

Como você pode ver na imagem acima, o samplestring a variável de referência refere-se a “Aprendizado de máquina”, mas não a outra string, mesmo após a criação de dois objetos. Com isso, encerramos este artigo sobre Mutável e Imutável em Java. Espero que vocês tenham clareza sobre cada um dos aspectos que discuti acima.

Agora que você entendeu o básico de Java, verifique o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi elaborado para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Mutável e Imutável em Java” e entraremos em contato com você o mais breve possível.