Você já ouviu falar sobre o termo “String pool em Java?” Bem, se não, você pousou no lugar certo. String Pool em Java é um pool de Strings que é armazenado em Memória de pilha. Vamos cavar um pouco mais a fundo e entender esse conceito de pool de Java String em detalhes.
As dicas a seguir serão discutidas neste artigo:
- Como criar uma String?
- O que é String pool em Java?
- Como funciona o String pool em Java?
- Diagrama de fluxo
- Programa Java para String pool
Vamos começar!
Em primeiro lugar, vamos entender como exatamente um objeto string é criado!
Como criar uma string?
Para criar um objeto String em Java, existem duas maneiras:
- Usando o novo operador. Por exemplo,
String s1 = nova String ('Joey')
- Usando um literal de string ou uma expressão constante. Por exemplo,
String s1 = 'Joey' (string literal) ou String s1 = 'Joe' + 'y' (expressão constante da string)
Agora, o que é esse String pool de que estou falando e como a criação de uma string em Java está relacionada a isso. Deixe-me reduzir a desordem!
O que é String Pool em Java?
String Pool é uma área de armazenamento no heap Java.
Alocação de string, como todos alocação de objeto , revela-se um assunto caro tanto no caso do tempo como da memória. A JVM executa algumas etapas ao inicializar literais de sequência para aumentar o desempenho e diminuir a sobrecarga de memória. Para diminuir o número de objetos String criados na JVM, a classe String mantém um pool de strings.
Cada vez que um literal de string é criado, o JVM verifica o pool literal de string primeiro. Se a string já existe no pool de strings, uma referência à instância do pool retorna. Se a string não existir no pool, um novo objeto String será inicializado e colocado no pool.
Depois de aprender o conceito teoricamente, deixe-me contar como um pool de String funciona em Java passo a passo com a ajuda de instâncias simples!
Como funciona o String pool em Java?
Quando você cria uma nova string como esta:
String s1 = “Rachel”
A JVM verifica automaticamente se o mesmo valor existe ou não no conjunto de constantes da cadeia.
o que system.exit (0) faz em java
- se sim, ocupa o valor já existente.
- Se não, ele cria uma nova string por si só e a adiciona ao pool de strings.
Se quiser interromper esse comportamento, crie uma string usando o novo operador:
String s1 = nova String (“Rachel”)
Agora, se você deseja adicionar esta string ao , Java fornece a você um método chamado método intern (), que você pode chamar de método interno intern () como este:
S1.intern ()
Agora, mostrarei a implementação e o funcionamento do pool de strings por meio de um exemplo.
Mas antes disso, um breve lembrete!
Como você sabe, se estiver comparando 2 objetos usando o operador ==, ele compara endereços na memória.
Portanto, vamos comparar as strings usando == para ter certeza de que é o mesmo objeto ou não.
Agora, vamos entrar em nosso processo de implementação.
Pool de strings em Java: diagrama de fluxo
Agora vamos entender o que acontece aqui passo a passo:
tipos de transformações em informática
- A classe é carregada quando é invocado.
- JVM procura por todos os literais de string no programa
- Primeiro, ele encontra a variável s1 que se refere ao literal 'Apple' e é criada na memória
- Uma referência para o literal “Apple” é então colocada na memória pool constante da string.
- Em seguida, ele encontra outra variável s2 que se refere ao mesmo literal de string “Mango”.
- Em seguida, ele encontra outra variável s3 que se refere ao literal 'Apple'
- Agora que a JVM já encontrou um literal de string “Apple”, ambas as variáveis s1 e s3 irão se referir ao mesmo objeto, ou seja, “Apple”.
Programa Java para String Pool
public class StringPoolExperiment {public static void main (String [] args) {String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). intern ( ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}
Resultado:
Verdade
Falso
Verdade
No exemplo acima, você pode ver claramente o uso da inicialização de string em todas as três maneiras, ou seja,
String s1 = 'Rachel' String s2 = 'Rachel' String s3 = nova String ('Rachel') String s4 = nova String ('Rachel'). Intern ()
O funcionamento interno do programa talvez deva estar claro agora.
Com isso, cheguei ao final do meu blog. Espero que os conteúdos elaborados aqui tenham ajudado a ampliar sua base de conhecimento. Continuaremos mergulhando no mundo Java. Fique ligado!
Confira 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 desenvolvido para dar a você uma vantagem na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com vários frameworks Java como Hibernate Primavera .
Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “String Pool in Java” e entraremos em contato com você o mais breve possível.