Това може да звучи глупаво, но все още не съм наясно с Java Stack и паметта. Това, което знам от следването е следното:
1) Всички извиквания на метод отиват в стека.
2) Цялата памет, разпределена локално, отива в паметта (не е много ясно по този въпрос)
3) Цялата памет, разпределена от нов оператор (или в метод, или в клас), отива в паметта.
Притеснявам се от следните случаи:
1) Ако създам int променлива в метод и я върна, къде отива (вярвам, че отива в стека, но има нужда от пояснение).
2) Ако създам нов обект в метод, той отива в паметта на купчината, тъй като съществува, дори след като изпълнението на методите приключи (разбирам, че това се случва, защото хеш кодът на обекта, създаден от java, остава същият, когато присвоя този обект на някои външна референтна променлива или връщам този обект).
3) Моят проблем е какво се случва, ако не присвоявам обекта, споменат в точка 2, на никаква препратка или не връщам това. Все още ли е създаден на куп? Логично би трябвало да е така, но моля да ме просветлите.