String imutável em Java: tudo que você precisa saber



Este artigo fornecerá a você um conhecimento detalhado e abrangente de Immutable String em Java. Por que é importante?

Lidando com String Imutável em é um aspecto muito importante em qualquer linguagem de programação. Neste artigo, discutiremos as seguintes dicas:

Introdução a Immutable String em Java

O conjunto de strings possui objetos de string que são armazenados em cache devido a que a string é imutável. Vários clientes compartilham os literais de string em cache. Os riscos envolvidos na ação de um cliente afetariam todos os outros clientes.





série c ++ fibonacci

Por exemplo, quando um cliente altera o valor da string “Teste” para “TESTE”, todos os outros clientes verão o valor alterado. Como o cache de objetos de string era importante para o desempenho, a classe Immutable String evitou o risco. Além disso, String foi tornada final para que o invariante da classe String não seja comprometido. Exemplo de Imutabilidade, Cache, cálculo de código hash feito por extensão e substituição de comportamentos.

Chave Hashmap

A chave HashMap é muito popular, a imutabilidade é muito importante para que o objeto de valor possa ser recuperado do HashMap. Hashing é o princípio do HashMap, que requer que o mesmo tenha valor para funcionar corretamente. Dois hashcodes diferentes são produzidos, um no momento da inserção e outro no momento da recuperação, quando os conteúdos são modificados após a inserção, potencialmente perdendo o objeto de valor do mapa no mapa.



String imutável Hashtable em Java
A classe Immutable String em Java é a mais frequentemente solicitada .A discussão começa com, o que é uma String, como ela é diferente de String em C ++, e então a questão que se segue são objetos imutáveis ​​em Java, benefícios do objeto imutável, qual é seu uso e os cenários para usá-los.

Necessidade de String imutável em Java

Duas razões são importantes para dizer por que a classe Immutable String é feita em Java:

1. Não é possível no caso de ter um objeto / literal de string.



Vamos nos referir ao exemplo abaixo:

“Teste” pode ser referido por muitas variáveis ​​de referência. Se algum deles alterar o valor dos outros, isso também será afetado. Vamos ver como.

String A = 'Teste'
String B = 'Teste'


String A chamado, “Test” .toUpperCase () que muda o mesmo objeto para,'TESTE'então B também será “TEST”, o que não é necessário. Abaixo está um diagrama que nos diz como String é criada na memória heap e no pool literal de String.

2. A string foi amplamente usada como parâmetro para muitas classes Java. Por exemplo, quando abrimos uma conexão de rede, podemos passar o nome do host e o número da porta como uma string, para abrir a conexão do banco de dados, podemos passar a URL do banco de dados como uma string.


Uma string imutável levaria a sérias ameaças à segurança. Por exemplo, alguém pode acessar um arquivo ao qual ele tem acesso e, em seguida, alterar o nome do arquivo para obter acesso ao outro arquivo. No caso de imutabilidade, não precisa se preocupar com essas ameaças.

Uma string imutável também pode compartilhar threads com segurança, o que é importante para a programação multithread. Uma instância de string imutável é thread-safe em Java, portanto, não há necessidade de sincronizar a operação de String externamente para evitar problemas de sincronização em Java. Outro ponto importante a ser observado é o vazamento de memória causado pelo Substring, que não é um problema relacionado ao thread, mas algo a ser considerado.

argumentos de linha de comando em código de exemplo java

Com isso, chegamos ao final deste artigo “String imutável em Java”. C que diabo 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.

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