第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

什么是不變的?

什么是不變的?

德瑪西亞99 2019-06-20 16:13:29
什么是不變的?這可能是有史以來最愚蠢的問題,但我認為對于一個Java新手來說,這是一個相當令人困惑的問題。有人能澄清什么是什么意思嗎?不變?為什么String不變?不可變對象的優(yōu)點/缺點是什么?為什么可變對象(如StringBuilder優(yōu)先于弦樂和反詩?一個很好的例子(在Java中)將是非常感謝的。
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

實際上,如果使用上面提到的Wikipedia定義,字符串并不是不可變的。

String的狀態(tài)確實會改變構(gòu)建后的狀態(tài)。看看hashcode()方法。String在本地字段中緩存hashcode值,但在第一次調(diào)用hashcode()之前不會計算它。這種對hashcode的惰性計算將字符串作為一個不可變對象放置在一個有趣的位置,其狀態(tài)會發(fā)生變化,但如果不使用反射,則無法觀察到它已經(jīng)發(fā)生了更改。

因此,也許不變的定義應(yīng)該是一個不能被觀察到已經(jīng)改變的對象。

如果在創(chuàng)建不可變對象之后狀態(tài)發(fā)生了變化,但是沒有人能夠看到它(沒有反射),那么該對象是否仍然是不可變的?


查看完整回答
反對 回復(fù) 2019-06-20
  • 3 回答
  • 0 關(guān)注
  • 478 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號