當前位置:首頁 » 編程語言 » java的常量池

java的常量池

發布時間: 2023-09-12 01:26:49

java中的幾種常量池

  • 字元串常量池:當類載入完成,在堆中生成字元串對象實例,然後將該字元串對象實例的引用值存到string pool中。

  • class文件常量池:用於存放編譯器生成的各種字面量(Literal)和符號引用(Symbolic References)。

  • 運行時常量池:當類載入到內存中後,jvm就會將class常量池中的內容存放到運行時常量池中。

⑵ Java常量池是什麼有什麼用 和堆、棧有關系求簡單易懂的解釋!

1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制.
2. 棧:存放基本類型的變數數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(字元串常量對象存放在常量池中。)
3. 堆:存放所有new出來的對象。
4. 靜態域:存放靜態成員(static定義的)
5. 常量池:存放字元串常量和基本類型常量(public static final)。
6. 非RAM存儲:硬碟等永久存儲空間
這里我們主要關心棧,堆和常量池,對於棧和常量池中的對象可以共享,對於堆中的對象不可以共享。棧中的數據大小和生命周期是可以確定的,當沒有引用指向數據時,這個數據就會消失。堆中的對象的由垃圾回收器負責回收,因此大小和生命周期不需要確定,具有很大的靈活性。
對於字元串:其對象的引用都是存儲在棧中的,如果是編譯期已經創建好(直接用雙引號定義的)的就存儲在常量池中,如果是運行期(new出來的)才能確定的就存儲在堆中。對於equals相等的字元串,在常量池中永遠只有一份,在堆中有多份。

⑶ Java運行時常量池是什麼

運行時常量池是每個類常量池的運行時代表。它包含了類的運行時常量和靜態方法。運行時常量池是方法區的一部分。

⑷ java方法區中包含哪些內容,常量池中包含哪些內容

包含類的版本,類名,欄位,方法,介面等信息;
常量池裡存放了編譯期產生的各種 字面量以及符號引用,在類載入後進入方法區的運行時常量池中,運行時常量池相對於class常量池一個重要的特徵是動態性,在運行期間也可以將新的常量放入其中,用的較多的就是String的intern方法。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:233
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:532
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726