Imutabilidade de Strings em Java
Deslize para mostrar o menu
Você já sabe que Strings armazenam textos como nomes de clientes, nomes de produtos e mensagens. Mas algo que torna as Strings especiais em Java é que elas são imutáveis.
Imutabilidade significa que, uma vez que um objeto String é criado, seu conteúdo não pode ser alterado. Qualquer operação que pareça modificar uma string, na verdade, cria um novo objeto String nos bastidores.
Exemplo
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Mesmo que ambas as variáveis tenham sido reatribuídas, elas se comportam de maneira diferente internamente. Com int, a variável armazena diretamente o valor — a reatribuição simplesmente o substitui. Mas String é um tipo de referência, o que significa que a variável armazena um endereço apontando para um objeto String na memória. Quando drink = "Cappuccino" é atribuído, o Java não modifica "Espresso" — ele cria um novo objeto String e faz com que drink aponte para ele. O objeto original "Espresso" permanece inalterado.
Como Funciona Passo a Passo
String drink = "Espresso";
O Java cria um objeto String "Espresso" e drink aponta para ele.
drink = "Cappuccino";
O Java cria um novo objeto String "Cappuccino", drink agora aponta para o novo. "Espresso" permanece inalterado.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Imutabilidade de Strings em Java
Você já sabe que Strings armazenam textos como nomes de clientes, nomes de produtos e mensagens. Mas algo que torna as Strings especiais em Java é que elas são imutáveis.
Imutabilidade significa que, uma vez que um objeto String é criado, seu conteúdo não pode ser alterado. Qualquer operação que pareça modificar uma string, na verdade, cria um novo objeto String nos bastidores.
Exemplo
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Mesmo que ambas as variáveis tenham sido reatribuídas, elas se comportam de maneira diferente internamente. Com int, a variável armazena diretamente o valor — a reatribuição simplesmente o substitui. Mas String é um tipo de referência, o que significa que a variável armazena um endereço apontando para um objeto String na memória. Quando drink = "Cappuccino" é atribuído, o Java não modifica "Espresso" — ele cria um novo objeto String e faz com que drink aponte para ele. O objeto original "Espresso" permanece inalterado.
Como Funciona Passo a Passo
String drink = "Espresso";
O Java cria um objeto String "Espresso" e drink aponta para ele.
drink = "Cappuccino";
O Java cria um novo objeto String "Cappuccino", drink agora aponta para o novo. "Espresso" permanece inalterado.
Obrigado pelo seu feedback!