導航:首頁 > 安裝方法 > 方法區和常量池存在哪裡

方法區和常量池存在哪裡

發布時間:2023-09-30 18:34:22

⑴ java線程存放在jvm的哪個區域方法又存放在哪個區呢

聊到JAVA中的方法,大多數人對於方法存儲在方法區還是棧區(虛擬機棧)是很迷茫的。其實方法是存在方法區的下面我們就細細說一下JVM中的 方法區 VS 棧區方法區:用於存儲已被虛擬機載入的類信息、常量、靜態變數、即時編譯器編譯後的代碼等數據,方法編譯出的位元組碼也是保存在這

⑵ java中成員變數都儲存在棧內存中嗎

一個完整的Java程序運行過程會涉及以下內存區域:x0dx0a寄存器:JVM內部虛擬寄存器,存取速度非常快,程序不可控制。x0dx0a棧:保存局部變數的值,包括:1.用來保存基本數據類型的值;2.保存類的實例,即堆區對象的引用(指針)。也可以用來保存載入方法時的幀。x0dx0a堆:用來存放動態產生的數據,比如new出來的對象。注意創建出來的對象只包含屬於各自的成員變數,並不包括成員方法陵猛。因為同一個類的對象擁有各自的成員變數,存儲在各自的堆中,但是他們共享該類的方法,並不是每創建一個對象就把成員方法復制一次。x0dx0a常量池:JVM為每個已載入的類型維護一個常量池,常量池就是這個類型用到的常量的一個尺冊橋有序集合。包括直接常量(基本類型,String)和對其他類型、方法、欄位的符號引用。池中的數據和數組一樣通過索引訪問。由於常量池包含了一個類型所有的對其他類型、方法、欄位的符號引用,所以常量池在Java的動態鏈接中起了核心作用。常量池存在於堆中。x0dx0a代碼段:用來存放從硬碟上讀取的源程序代碼。x0dx0a數據段:用來存放static定義的靜態成員。x0dx0ax0dx0a對於局部變數,如果是基本類型,會把值直接存儲在棧;如果是引用類型,比如String s = new String("william");會把其對象存儲在堆姿神,而把這個對象的引用(指針)存儲在棧。x0dx0a再如x0dx0aString s1 = new String(「william」);x0dx0aString s2 = s1;x0dx0as1和s2同為這個字元串對象的實例,但是對象只有一個,存儲在堆,而這兩個引用存儲在棧中。x0dx0ax0dx0a類的成員變數在不同對象中各不相同,都有自己的存儲空間(成員變數在堆中的對象中),基本類型和引用類型的成員變數都在這個對象的空間中,作為一個整體存儲在堆。而類的方法卻是該類的所有對象共享的,只有一套,對象使用方法的時候方法才被壓入棧,方法不使用則不佔用內存。

閱讀全文

與方法區和常量池存在哪裡相關的資料

熱點內容
最簡單瘦手臂和背部的快速方法 瀏覽:839
啞鈴鍛煉方法啞鈴鍛煉計劃 瀏覽:889
橡皮泥做小手機方法 瀏覽:174
如何快速止盈方法 瀏覽:584
if函數的使用方法視頻教程 瀏覽:476
微博電腦版皮膚設置在哪裡設置方法 瀏覽:135
鋁線與銅絲連接方法 瀏覽:505
半月板前角損傷治療的好方法 瀏覽:740
凱美瑞雨刷的正確拆卸方法 瀏覽:140
鵝掌種植方法 瀏覽:832
鉗工水平尺的正確校準方法 瀏覽:273
渾身沒勁有什麼方法 瀏覽:550
橋頭土石方計算方法 瀏覽:58
一般定向法用什麼的方法確定方向 瀏覽:643
子宮肌腺症的治療方法 瀏覽:908
生火最簡單的方法 瀏覽:535
天才郁悶的原因和解決方法 瀏覽:117
好朋友訓練方法 瀏覽:34
教學方法與手段改革有哪些 瀏覽:281
按摩肚子瘦身方法視頻 瀏覽:420