exatamente
tenho que destacar o funcionamento do AutoBoxing, com Objetos que encapsulam tipos primitivos, quando você da (outroObjeto = objetoOriginal) ele nao pega a referência do objeto original e sim o Valor , então cria um novo objeto na memória e joga o valor do objeto original dentro do novo objeto... isso é o autoBoxing...
no caso do exemplo abaixo que não utiliza auto-boxing da pra se ver claramente como funcionam as referências:
public class objeto {
String texto;
}
public class Referencias {
public static void main(String[] args) {
objeto objetoOriginal = new objeto(); //criei objeto na memoria
objetoOriginal.texto = "Editei meu conteudo";
objeto[] objetos = new objeto[20];
objetos[0] = objetoOriginal;
objetoOriginal.texto = "Editei novamente meu conteudo";
System.out.println(objetos[0].texto);
//perceba que editei o objetoOriginal, mas imprimi a partir da cópia da sua referência
// ou seja tanto objetos[0] e ObjetoOriginal apontam para o mesmo objeto na memória
}
}
perceba que quando altero o valor de um, o valor do outo também altera, pois estão referenciando o mesmo objeto que só criei 1 vez.
caso tenha dúvidas do autoBoxing...entenda que se no lugar de Objeto eu utilizasse String
e fizesse String objetos[0] = objetoOriginal;
dentro do java "automaticamente" ele entederia isso como:
String objetos[0] = new String(objetoOriginal); //não pegando a referência e sim criando um novo objeto