我覺(jué)得如果別人問(wèn)這個(gè)問(wèn)題的話,回答不可變就可以了。 下面只是給大家看兩個(gè)有代表性的例子:
1. String不可變但不代表引用不可以變
結(jié)果:
str=Hello World
解析:
實(shí)際上,原來(lái)String的內(nèi)容是不變的,只是str由原來(lái)指向"Hello"的內(nèi)存地址轉(zhuǎn)為指向"Hello World"的內(nèi)存地址而已,也就是說(shuō)多開(kāi)辟了一塊內(nèi)存區(qū)域給"Hello World"字符串。
2. 通過(guò)反射是可以修改所謂的“不可變”對(duì)象
結(jié)果:
s = Hello Worlds = Hello_World
解析:
用反射可以訪問(wèn)私有成員, 然后反射出String對(duì)象中的value屬性, 進(jìn)而改變通過(guò)獲得的value引用改變數(shù)組的結(jié)構(gòu)。但是一般我們不會(huì)這么做,這里只是簡(jiǎn)單提一下有這個(gè)東西。