亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中存儲的靜態方法和靜態變量在哪里?

Java中存儲的靜態方法和靜態變量在哪里?

烙印99 2019-07-22 16:31:53
Java中存儲的靜態方法和靜態變量在哪里?例如:class A {     static int i=0;     static int j;    static void method() {        // static k=0; can't use static for local variables only final is permitted        // static int L;     }}這些變量將在哪里存儲在Java中、堆中還是堆棧內存中?它們是如何儲存的?
查看完整描述

3 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

類變量(靜態變量)存儲在Class object和那個班有關聯。這個class對象只能由JVM創建,并存儲在permanent generation.

還有一些人回答說,它存儲在非堆區,稱為Method Area.即使這個答案也沒錯。Permgen區域是否是堆的一部分只是一個有爭議的話題。顯然,人與人之間的看法是不同的。在我看來,我們在JVM參數中提供堆空間和permgen空間的方式不同。因此,以不同的方式對待它們是一個很好的假設。

另一種看法

內存池是由JVM內存管理器在運行時創建的。內存池可以屬于堆內存,也可以屬于非堆內存。運行時常量池是類文件中常數池表的每類或每個接口運行時表示形式。每個運行時常量池都是從Java虛擬機的方法區域分配的,靜態變量存儲在這個方法區域中。此外,這個非堆只是perm gen區域,實際上方法區域是perm gen的一部分。參照系)


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 4509 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號