java中json字符串轉(zhuǎn)對(duì)象 在java中為什么String字符串可以作為對(duì)象來(lái)管理?
在java中為什么String字符串可以作為對(duì)象來(lái)管理?據(jù)我們所知,Java中創(chuàng)建字符串(對(duì)象)的方法很多:[2]直接定義字符串常量3]通過(guò)實(shí)例化字符串類(lèi)來(lái)創(chuàng)建字符串對(duì)象Java中的字符串可以直接作為
在java中為什么String字符串可以作為對(duì)象來(lái)管理?
據(jù)我們所知,Java中創(chuàng)建字符串(對(duì)象)的方法很多:[2]直接定義字符串常量
3]通過(guò)實(shí)例化字符串類(lèi)來(lái)創(chuàng)建字符串對(duì)象
Java中的字符串可以直接作為對(duì)象操作。原則是什么?
例如:
1,literal quantity of string,string constant pool
Java中字符串的literal quantity是一對(duì)用雙引號(hào)括起來(lái)的字符串,如“Chinese”。
字符串常量是常量池。當(dāng)string STR=“string”時(shí),編譯器將檢查在不朽生成中是否有對(duì)常量的引用。如果存在引用,編譯器將直接將地址分配給堆棧。如果沒(méi)有引用,編譯器將首先在不朽生成中打開(kāi)一個(gè)內(nèi)存空間,然后將地址分配給堆棧指針。
也就是說(shuō),字符串對(duì)象的引用仍然存儲(chǔ)在字符串常量池中。
2. 實(shí)例化string對(duì)象
該方法根據(jù)string對(duì)象重新創(chuàng)建一個(gè)string對(duì)象,在堆內(nèi)存中添加新的內(nèi)存塊后,將指針賦給堆棧指針。
Java中newString創(chuàng)建幾個(gè)對(duì)象的解釋是什么?
首先,Java虛擬機(jī)分為堆區(qū)、堆棧區(qū)、代碼區(qū)和數(shù)據(jù)區(qū)。創(chuàng)建一個(gè)對(duì)象。當(dāng)執(zhí)行string STR=new string(“SS”)時(shí),一個(gè)內(nèi)存塊被分配給堆區(qū)域中的STR,內(nèi)容是SS。同時(shí),堆棧區(qū)域中會(huì)有對(duì)STR的引用。比如,以QQ為例,QQ快捷方式在桌面上一點(diǎn)都沒(méi)有QQ.exe位置像把手QQ.exe如果該位置被視為堆區(qū)域,則桌面快捷方式位于堆棧區(qū)域。原理是添加這樣一個(gè)點(diǎn):String STR=new String(“SS”)String s=“SS”String t=ssSystem.out.println文件(str==s)系統(tǒng)輸出打印(str==t)系統(tǒng)輸出prtintln(s=t)輸出為假、假、真。還有恒定池的概念。新字符串()不經(jīng)過(guò)常量池。如果你想了解更多,請(qǐng)留言