Confundido con Java Memory Management (Stacks y Heaps)

Esto puede sonar estúpido, pero todavía no estoy claro acerca de la pila de Java y el montón de memoria. Lo que sé de estudiar es lo siguiente:

1) Todas las llamadas de método van en la pila.

2) Toda la memoria asignada localmente va en el montón de memoria (no queda muy claro en este punto)

3) Toda la memoria asignada por el nuevo operador (ya sea en un método o en una clase) va en el montón de memoria.

Me preocupan los siguientes casos:

1) Si creo una variable int en un método y la devuelvo, ¿a dónde va (creo que va a la pila, pero necesito una aclaración)?

2) Si creo un nuevo objeto en un método, éste se almacena en la memoria del montón, incluso después de que finaliza la ejecución de los métodos (entiendo que esto sucede porque el código hash del objeto creado por java sigue siendo el mismo cuando asigno este objeto a algunos variable de referencia externa o devuelvo este objeto).

3) Mi problema es qué sucede si no estoy asignando el objeto mencionado en el punto 2 a ninguna referencia o si no lo estoy devolviendo. ¿Todavía se crea en el montón? Lógicamente debería ser, pero por favor, ilumíname.

Respuestas a la pregunta(2)

Su respuesta a la pregunta