Hola:
Aunque dicen que en java no hay punteros, realmente si vienes de C/C++ se entiende mejor si piensas que todo son punteros.
Persona persona
realemente es un puntero a Persona, lo que en C++ sería Persona *persona. Por eso se hacen cosas como
Persona persona = new Persona(22);
Si haces esta asiginación Persona persona = lista.get(0); , tienes el mismo objeto Persona dentro de la lista y en la variable persona, es como si en C++ tuvieras un puntero apuntando al elemento de la lista (persona realmente "apunta" al elemento Persona de la posición 0 de la lista. Si modificas la edad de persona, también estás modificando la de dentro del elemento de la lista.
Se bueno.
Aunque dicen que en java no hay punteros, realmente si vienes de C/C++ se entiende mejor si piensas que todo son punteros.
Persona persona
realemente es un puntero a Persona, lo que en C++ sería Persona *persona. Por eso se hacen cosas como
Persona persona = new Persona(22);
Si haces esta asiginación Persona persona = lista.get(0); , tienes el mismo objeto Persona dentro de la lista y en la variable persona, es como si en C++ tuvieras un puntero apuntando al elemento de la lista (persona realmente "apunta" al elemento Persona de la posición 0 de la lista. Si modificas la edad de persona, también estás modificando la de dentro del elemento de la lista.
Se bueno.