¿Qué sucede al imprimir un objeto en java?

class Data {
    int a = 5;
}

class Main {
    public static void main(String[] args) {
        int b=5;
        data dObj = new data();
        System.out.println(dObj);
        System.out.println(b);
    }
}

Quiero saber qué sucede cuando se imprime un objeto, un número o una cadena.

Ejecuté el código anterior, obtengo el resultado como "data @ 1ae73783" paraSystem.out.println(dObj); y "5" paraSystem.out.println(b);

Luego realicé una depuración para comprobar qué sucedía realmente al imprimir un objeto, había muchos parámetros llamados en un modo de depuración (como el cargador de clases, theards)
Sé por primera vez que el valor representa el nombre de la clase seguido de la dirección. Pero no sé qué está sucediendo realmente en el modo de depuración, para la segunda impresión, solo se asignó una variable en el modo de depuración, es decir, b = 5.

Por favor, explique lo que realmente está pasando?

Respuestas a la pregunta(5)

Su respuesta a la pregunta