java線程池有幾種 Java運行時常量池是什么?
Java運行時常量池是什么?在回答這個問題之前,讓我們先談?wù)勈裁词浅A?。用final修改的成員變量稱為常量。一旦指定了常量的值,就不能更改!final修改了三種類型的變量:靜態(tài)變量、實例變量和局部變量
Java運行時常量池是什么?
在回答這個問題之前,讓我們先談?wù)勈裁词浅A俊?/p>
用final修改的成員變量稱為常量。一旦指定了常量的值,就不能更改
!final修改了三種類型的變量:靜態(tài)變量、實例變量和局部變量,它們代表三種類型的常量。
Java中的常量池可以分為兩種方式:靜態(tài)常量池和運行時常量池。
1)所謂的靜態(tài)常量池是*中的常量池。類文件。類文件中的常量池不僅包含字符串(number)的文字量,還包含類和方法的信息,占用了類文件的大部分空間。
2)運行時常量池是JVM虛擬機將類文件中的常量池加載到內(nèi)存中,并在完成類加載操作后將其保存在方法區(qū)域中。我們經(jīng)常在方法區(qū)域中將常量池稱為運行時常量池。
只要我們在Java中談?wù)摮氐母拍睿诖蠖鄶?shù)情況下,它是為了減少頻繁的創(chuàng)建和破壞。使用一種方法來管理這個過程。讓我們簡單地談?wù)勥@個問題,以供具體參考。深入了解Java虛擬機書籍,了解更多。
小木的答案。站在巨人的肩膀上,根據(jù)他自己的理解和別人的理解,我們可以走得更遠(yuǎn)更快。
在java中為什么String字符串可以作為對象來管理?
我們知道在Java中創(chuàng)建字符串(對象)的方法有很多:
2。直接定義字符串常量
3。通過實例化字符串類創(chuàng)建字符串對象
Java中的字符串可以直接作為對象操作。原則是什么?
例如:
1,literal quantity of string,string constant pool
Java中字符串的literal quantity是一對用雙引號括起來的字符串,如“Chinese”。
字符串常量是常量池。當(dāng)string STR=“string”時,編譯器將檢查在不朽生成中是否有對常量的引用。如果存在引用,編譯器將直接將地址分配給堆棧。如果沒有引用,編譯器將首先在不朽生成中打開一個內(nèi)存空間,然后將地址分配給堆棧指針。
也就是說,字符串對象的引用仍然存儲在字符串常量池中。
2. 實例化string對象
該方法根據(jù)string對象重新創(chuàng)建一個string對象,在堆內(nèi)存中添加新的內(nèi)存塊后,將指針賦給堆棧指針。