Sobes.tech
Junior — Middle

Em que lugar na memória do armazenamento Java estão os objetos de string?

sobes.tech IA

Resposta da IA

Em Java, os objetos de string (String) são armazenados numa área especial de memória chamada String Pool (piscina de strings), que fica no Metaspace ou no PermGen (em versões antigas do JVM).

Quando um literal de string é criado, a JVM verifica a pool de strings: se essa string já existir, uma referência ao objeto existente é retornada; caso contrário, um novo objeto é criado e colocado na pool. Isso ajuda a economizar memória e a acelerar a comparação de strings.

Se uma string é criada através do construtor new String(), o objeto é criado no heap, não na pool, e não será automaticamente colocado na String Pool até que o método intern() seja chamado explicitamente.

Exemplo:

String s1 = "hello"; // string na pool
String s2 = new String("hello"); // objeto no heap
String s3 = s2.intern(); // s3 referencia a string na pool