[英]Where do java class live?
我知道Java對象,實例變量已創建並存在於堆中,而局部變量和對象引用已創建並存在於堆棧中。
那么“階級”本身在哪里生活呢?
我之所以這樣問是因為,當您創建靜態變量時,會使用類名來調用它們,例如
Math.round()
創建Math類時,它在內存中的位置(堆或堆棧)
迦特
堆的Permgen(永久代)區域...
Java類位於Permanent Generation heap
。內部字符串池也存儲在此處。
永久世代堆包含:
類在PermGen空間(即堆)中加載
所有類都加載在PermGen空間中
您可以在此處閱讀有關永久代(存儲類,方法等的更多信息)的更多信息:
http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation
但是請注意,當您調用靜態方法時,Java實際上是在幕后創建對象的內部實例,因此您實際上是在對象的“幕后”全局實例上調用該方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.