亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有人遇到過這個問題哈!java 中關于String類型的一些一問題

有沒有人遇到過這個問題哈!java 中關于String類型的一些一問題

瀟瀟雨雨 2019-06-18 09:35:55
Stringb="abcd"Stringa="a"Stringc="bcd"Stringd=a+csystem.out.println(d==b)//false為什么是false根據java字符串常量只能有一份的原則,應該是true才對。這里的內存圖是什么樣的
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

JAVA的字符串常量只能有一份的原則???
什么時候這種虛擬機優化,都能被當做原則了,我的天,誰給你保證的???
Stringd=a+c;
這個賦值當然是在這句執行的時候才會計算啊,計算出來的是一個新的變量,而不是字符串常量池里的那個。說起來,這里也有一個優化的問題,字符串拼接會被優化為類似于StringBuilder操作。你要非要說,為啥常量計算不直接編譯的時候就能計算了,就完事了唄……這個是程序正確性的問題了,已經不是優化的問題了。
                            
查看完整回答
反對 回復 2019-06-18
  • 2 回答
  • 0 關注
  • 277 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號