Qual é o conceito de String Pool em java?



String Pool em Java é um pool de Strings armazenado na Java Heap Memory. Este tutorial o ajudará com uma abordagem detalhada do Java String Pool com exemplos.

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:





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

Piscina String - Edureka

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.