卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

字符串常量池在堆中還是方法區(qū) 字符串常量池到底存放的是字符串引用還是字符串對(duì)象?

字符串常量池到底存放的是字符串引用還是字符串對(duì)象?如果你看字符串的源代碼,你會(huì)發(fā)現(xiàn)它是一個(gè)對(duì)象!s=“123”寫這句話時(shí),您將首先找出常量池中是否有字符串對(duì)象123。如果沒有字符串對(duì)象123,他將開始

字符串常量池到底存放的是字符串引用還是字符串對(duì)象?

如果你看字符串的源代碼,你會(huì)發(fā)現(xiàn)它是一個(gè)對(duì)象

!s=“123”

寫這句話時(shí),您將首先找出常量池中是否有字符串對(duì)象123。如果沒有字符串對(duì)象123,他將開始提取,1,2,3

然后將其拼接成一個(gè)對(duì)象,即“123”

如果還有另一個(gè)對(duì)象也需要這個(gè)對(duì)象,例如S1=“123”

此時(shí),操作S1時(shí)應(yīng)先到常量池中查找是否有這個(gè)對(duì)象,如果有,取直接尋址,因?yàn)槌A砍財(cái)?shù)據(jù)是共享的,

如果此時(shí)S1=“1234”則常量池不存在,它將被再次提取,1、2、3、4,然后重新組裝成常量池中的新對(duì)象

字符串常量池是在方法區(qū)中還是在獨(dú)立的區(qū)域中?

string STR=“nihao”當(dāng)程序開始執(zhí)行此代碼時(shí),它必須創(chuàng)建一個(gè)對(duì)象,但在創(chuàng)建對(duì)象之后,它是一個(gè)不能更改的常量,并且對(duì)象被放入字符串池,即,你說的常量池

如果我以后再寫代碼:String Other=“nihao”

STR和Other的地址是一樣的,因?yàn)镾TR和Other的聲明方式是一樣的。創(chuàng)建STR對(duì)象時(shí),如果字符串池中沒有“nihao”常量,請(qǐng)創(chuàng)建一個(gè)。創(chuàng)建其他對(duì)象時(shí),發(fā)現(xiàn)字符串池中有一個(gè)“nihao”常量,直接使用即可

string B1=New string(“nihao”)

但如果用上述方法直接New string(),則A1和B1引用的對(duì)象不在字符串池中,而是在堆中。但是,new string()的參數(shù)“nihao”也是一個(gè)字符串。這根繩子是從哪里來的?如果我們拆分代碼,我們會(huì)理解它:

string A1=new string(para)

會(huì)發(fā)現(xiàn)代碼字符串A1=new string(“nihao”)實(shí)際上創(chuàng)建了兩個(gè)對(duì)象,一個(gè)是string object,存儲(chǔ)在堆中,另一個(gè)是string constant object,存儲(chǔ)在字符串池中