String s = new String (“xyz”). Quantos objetos foram criados após essa linha de código ser executada?
A resposta comumente aceita a essa questão da entrevista é que dois objetos são criados pelo código. Mas eu não penso assim; Eu escrevi algum código para confirmar.
public class StringTest {
public static void main(String[] args) {
String s1 = "a";
String s2 = "a";
String s3 = new String("a");
System.out.println("s1: "+s1.hashCode());
System.out.println("s2: "+s2.hashCode());
System.out.println("s3: "+s3.hashCode());
}
}
A saída é:
Isso significa que apenas um objeto foi criado?
Reafirme: Minha pergunta é quantos objetos foram criados pelo seguinte código:
String s = new String("xyz")
Ao invés deStringTest
código.
Inspirado por @Don Branson, depurei o código abaixo:
public class test {
public static void main(String[] args) {
String s = new String("abc");
}
}
E o resultado é:
O id de s é 84 e o id de "abc" é 82. O que exatamente isso significa?