java?。樱簦颍椋睿珙愔?,String s = "abc";s = "d";我知道上面?zhèn)€s和下面?zhèn)€s的地址值不一樣,但是怎么證明呢,我這樣寫,就相當于把上面s‘’abc‘’的地址覆蓋了,那我怎么拿到第一個s的地址呢
2 回答

子衿沉夜
TA貢獻1828條經(jīng)驗 獲得超3個贊
要想獲得直接的證據(jù),可以用jmap等jvm調(diào)試工具dump內(nèi)存,然后看看到對象的存儲。不過根據(jù)java的語言規(guī)范,可以推斷,比如用==號。
java不存在字符串“覆蓋”一說,字符串是只讀的。

慕妹3146593
TA貢獻1820條經(jīng)驗 獲得超9個贊
第一個句話,創(chuàng)建了一個s的string對象,第二句把指針指向一個新地址,從代碼角度來說,第一個地址已經(jīng)被重新指向了,就是被覆蓋了。打斷點也是可以看的,去看看深入理解jvm虛擬機吧,會對你的疑惑有很全面的解釋
添加回答
舉報
0/150
提交
取消