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