java池化技術 Java運行時常量池是什么?
Java運行時常量池是什么?在回答這個問題之前,讓我們先談談什么是常量。用final修改的成員變量稱為常量。一旦指定了常量的值,就不能更改!final修改了三種類型的變量:靜態(tài)變量、實例變量和局部變量
Java運行時常量池是什么?
在回答這個問題之前,讓我們先談談什么是常量。
用final修改的成員變量稱為常量。一旦指定了常量的值,就不能更改
!final修改了三種類型的變量:靜態(tài)變量、實例變量和局部變量,它們代表三種類型的常量。
Java中的常量池可以分為兩種方式:靜態(tài)常量池和運行時常量池。
1)所謂的靜態(tài)常量池是*中的常量池。類文件。類文件中的常量池不僅包含字符串(number)的文字量,還包含類和方法的信息,占用了類文件的大部分空間。
2)運行時常量池是JVM虛擬機將類文件中的常量池加載到內(nèi)存中,并在完成類加載操作后將其保存在方法區(qū)域中。我們經(jīng)常在方法區(qū)域中將常量池稱為運行時常量池。
只要我們在Java中談論池的概念,在大多數(shù)情況下,它是為了減少頻繁的創(chuàng)建和破壞。使用一種方法來管理這個過程。讓我們簡單地談談這個問題,以供具體參考。深入了解Java虛擬機書籍,了解更多。
小木的答案。根據(jù)自己的理解和別人的理解,只有站在巨人的肩膀上,我們才能走得更遠更快。
Java中的字符串常量池與Java中的堆和棧的區(qū)別?
Java常量池不在堆或棧中。它是一個獨立的內(nèi)存空間管理。
1. 堆棧:它存儲基本類型變量數(shù)據(jù)和對象引用,但對象本身不存儲在堆棧中,而是存儲在堆(新對象)或常量池(字符串常量對象存儲在常量池中)。堆:存儲所有新對象。
3. 常量池:存儲字符串常量和基本類型常量(publicstaticfinal)。
對于字符串:其對象的引用存儲在堆棧中。如果它們是在編譯時創(chuàng)建的(直接用雙引號定義),則它們存儲在常量池中。如果只能在運行時(New)確定它們,則將它們存儲在堆中。對于相等的字符串,常量池中總是只有一個副本,堆中總是有多個副本。