2017-10-13 336 views
0

首先我知道這個問題必須在某個地方回答,但我很難找到答案,因爲我沒有在尋找我想要的正確答案。方法調用後原始局部變量會發生什麼?

所以我知道Java垃圾收集器,它負責處理未使用的對象,但是在方法調用之後,本地數據類型的值會發生什麼?

例如

public void anyMethod() { 
    int foo = 20; 
} 

會發生什麼方法調用後,foo的?它是否仍然存在於記憶中,即使它從未被使用過?我是否應該關心這種「技術性」?我知道,當涉及到對象時,只有引用正在被處理,而原始值類型則不是這種情況。也許我也只是誤解了如何原始值存儲在Java中以及

無論哪種方式,我希望有人可以幫助我或告訴我爲什麼我的問題是愚蠢的,我應該爲自己感到難過。

此致

+2

我是否應該關心這種「技術性」? => nope – 2017-10-13 06:45:57

+0

相關:https://stackoverflow.com/questions/39419901/how-to-manually-free-primitive-variables?rq=1 – 2017-10-13 06:47:14

回答

4

每個功能是在堆棧幀執行。 方法本地變量在此堆棧幀上分配了內存,並且方法完成時(有或沒有例外),堆棧幀的內容將被丟棄,並且其中的所有數據都將丟失。

+2

要完成您的答案,請https://stackoverflow.com/questions/18746801/are-java-primitives-garbage-collected可能值得一讀 – 2017-10-13 06:47:47

相關問題