Brian Smith Chuquiruna Leon
PreguntaCual es la diferencia entre “puntero” y “referencia”? Entiendo que ambos apuntan a una dirección en memoria.

Jesús Ramírez
Si usted hace esto
int x = 6; int y = 6; if(x == y){ System.out.println("Son iguales"); } else { System.out.println("Son diferentes"); }
Se imprimira Son iguales porque 6 es igual a 6. Sin embargo si usted hace
String[] nombre = {"Juan"}; String[] nombre2 = {"Juan"}; if (nombre == nombre2) { System.out.println("Son iguales"); } else { System.out.println("Son diferentes"); }
Si haces dos arreglos de String con el mismo contenido imprime diferentes porque cada variable, nombre y nombre2 hacen referencia a direcciones de memorias distintas, no se está evaluando los contenidos sino las direcciones mismas

Jesús Ramírez
Los OBJETOS en java se guardan en variables que tiene la referencia en memoria de ese OBJETO. ¿Qué es un objeto? todo lo que no sea un dato primitivo, es decir, byte, short, int, long, float, double, boolean, char, es un OBJETO

Jesús Ramírez
Un puntero ES una VARIABLE que guarda la dirección de memoria de OTRA VARIABLE, en java no se ve eso pero en lenguajes como C, sí. Todas las variables se guardan en un espacio de la memoria RAM, un puntero guarda la dirección, "la forma de llegar" a la variable, un puntero también tiene su propia dirección de memoria porque es una variable. Una variable que guarda a un OBJETO en Java lo que realmente hace es, la variable guarda la dirección de memoria donde está el OBJETO, hace REFERENCIA directamente a la dirección de la memoria en donde se guarda ese OBJETO.

Pablo Antipan Quiñenao
Hola Brian! Este enlace lo explica bien! Saludos!