不可变对象
定義:不可變對(duì)象一旦創(chuàng)建,這個(gè)對(duì)象的(狀態(tài)/值)不能更改了;
其內(nèi)在的成員變量的值就不能修改了,如八個(gè)基本的包裝類,string等
定義一個(gè)對(duì)象a(abc)
a是對(duì)象,對(duì)象是指針賦值,所有b也指向a的地址
a=def,由于string是個(gè)不可變對(duì)象,不可變對(duì)象是指值對(duì)象不再修改,即abc不會(huì)被修改
,而指針a的指向可以修改;
a=def相當(dāng)于說,先申請(qǐng)一個(gè)def的空間再把空間的地址賦給a;
new個(gè)對(duì)象a,a指向abc,調(diào)用change(a),實(shí)參的指針會(huì)傳給形參的指針;
在函數(shù)的內(nèi)部,重新申請(qǐng)了個(gè)def,并且把def的值賦給b,b指向abc的就斷了
b就指向了def,但是a指向的沒有變
不可變對(duì)象,也是傳指針(引用),只要是對(duì)象函數(shù)調(diào)用都是傳指針;
由于不可改變,臨時(shí)變量指向新內(nèi)存,外部實(shí)參的指針不改動(dòng);
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
- 上一篇: 为什么使用@tablename起别名产生
- 下一篇: ARM MOV指令对立即数的要求