Respostas
respondido por:
1
O operador == diz que as Strings são diferentes, sendo que elas armazenam o mesmo valor literal, veja o exemplo:
public class TesteString { public static void main(String[] args) { String str1 = "teste"; String str2 = "Oteste".substring(1); System.out.println("str1: " + str1 + ", str2: " + str2); if(str1 == str2) { System.out.println("str1 igual a str2"); } else { System.out.println("str1 diferente de str2"); } } }
Resultado:
str1: teste, str2: teste str1 diferente de str2.
O Java utiliza um mecanismo chamado String interning, colocando as Strings num pool para tentar armazenar apenas uma cópia de cada sequência de caracteres em memória.
public class TesteString { public static void main(String[] args) { String str1 = "teste"; String str2 = "Oteste".substring(1); System.out.println("str1: " + str1 + ", str2: " + str2); if(str1 == str2) { System.out.println("str1 igual a str2"); } else { System.out.println("str1 diferente de str2"); } } }
Resultado:
str1: teste, str2: teste str1 diferente de str2.
O Java utiliza um mecanismo chamado String interning, colocando as Strings num pool para tentar armazenar apenas uma cópia de cada sequência de caracteres em memória.
Perguntas similares
6 anos atrás
6 anos atrás
6 anos atrás
8 anos atrás
8 anos atrás
9 anos atrás