1
resposta

Mesma instância apontada duas vezes seguidas no vídeo

Se não me engano, no Java 5 um String com o mesmo conteúdo passou a ser reaproveitado na memória. Como o coletor de lixo ainda não tinha passado, ele retornou o mesmo identificador na vídeo aula.

Antigamente, poderia se criar duas instâncias de String com o mesmo conteúdo uma após a outra e as duas eram realmente diferentes, bastando comprar com igual igual para verificar isso. Não acontece mais assim, duas variáveis String que recebem o mesmo texto, apontam para a mesma instância. Durante um execução de um programa, podem ser diferentes, mas quando são criadas uma após a outra , ...

Não é isso?

1 resposta

Isso mesmo. Porém é melhor ficar atento para situações onde uma das instancias utiliza algum método que altera seu conteúdo. Por exemplo :

String nome = "Carlos";
String outroNome = "Carlos";
    //Uma das maneiras de verificar se são iguais é fazendo um "if".

if(nome.equal(outroNome) == true) {
    System.out.println("São iguais");
    } else{
        System.out.println("São diferentes");
    }

Neste caso o resultado vai ser que elas são as mesmas. Porém se eu utilizar o método replace na String outroNome por exemplo.

String nome = "Carlos";
String outroNome =  nome.replace("C", "c");

//Eai basta fazer a verificação novamente

    if(nome.equal(outroNome) == true) {
    System.out.println("São iguais");
    } else{
        System.out.println("São diferentes");
    }

Neste exemplo a saída vai ser false por que quando ocorre o replace é criado um outro objeto nome(carlos com c minúsculo) que não aponta para o mesmo objeto da referencia "nome".

Bons estudos.