前端性能優(yōu)化有哪些方法 編程里面的深拷貝和淺拷貝各是什么意思,怎么理解這兩個(gè)?
編程里面的深拷貝和淺拷貝各是什么意思,怎么理解這兩個(gè)?淺拷貝意味著源對(duì)象和拷貝對(duì)象共享同一個(gè)實(shí)體,只是引用的變量不同(名稱(chēng)不同)。對(duì)其中一個(gè)對(duì)象的更改會(huì)影響另一個(gè)對(duì)象。例如,一個(gè)人的名字起初是張三,后
編程里面的深拷貝和淺拷貝各是什么意思,怎么理解這兩個(gè)?
淺拷貝意味著源對(duì)象和拷貝對(duì)象共享同一個(gè)實(shí)體,只是引用的變量不同(名稱(chēng)不同)。對(duì)其中一個(gè)對(duì)象的更改會(huì)影響另一個(gè)對(duì)象。例如,一個(gè)人的名字起初是張三,后來(lái)改成了李四,但卻是同一個(gè)人。無(wú)論是張三缺胳膊缺腿,還是李四缺胳膊缺腿,都是同一個(gè)人的厄運(yùn)。深度復(fù)制是指源對(duì)象和復(fù)制對(duì)象相互獨(dú)立,任何對(duì)象的改變都不會(huì)影響到另一個(gè)對(duì)象。例如,一個(gè)叫張三的人被用來(lái)克隆另一個(gè)叫李四的人。不管張三缺胳膊缺腿,李四缺胳膊缺腿,都不會(huì)影響別人。典型的是值對(duì)象,例如預(yù)定義的類(lèi)型int32、double、struct、enum等
1。深拷貝和淺拷貝都是源對(duì)象的拷貝,占用不同的內(nèi)存空間。
2. 不可變類(lèi)型的對(duì)象對(duì)深副本和淺副本沒(méi)有影響,并且最終地址值和值是相等的。
3. 變量類(lèi)型:
=淺復(fù)制:等值,等地址
復(fù)制淺復(fù)制:等值,不等地址
深度復(fù)制:等值,不等地址
淺復(fù)制只復(fù)制引用,數(shù)據(jù)仍然是內(nèi)存中的一個(gè)。如果引用對(duì)象發(fā)生更改,深度復(fù)制相當(dāng)于將數(shù)據(jù)復(fù)制到內(nèi)存中。此時(shí),修改變量不會(huì)影響原始變量。同樣,修改原始變量不會(huì)影響當(dāng)前變量