前端深拷貝和淺拷貝的區(qū)別 淺拷貝與深拷貝的區(qū)別是什么?
淺拷貝與深拷貝的區(qū)別是什么?1. 深拷貝和淺拷貝都是源對(duì)象的拷貝,占用不同的內(nèi)存空間。2. 不可變類型的對(duì)象對(duì)深副本和淺副本沒(méi)有影響,并且最終地址值和值是相等的。3. 變量類型:=淺拷貝:簡(jiǎn)而言之,如
淺拷貝與深拷貝的區(qū)別是什么?
1. 深拷貝和淺拷貝都是源對(duì)象的拷貝,占用不同的內(nèi)存空間。
2. 不可變類型的對(duì)象對(duì)深副本和淺副本沒(méi)有影響,并且最終地址值和值是相等的。
3. 變量類型:
=淺拷貝:簡(jiǎn)而言之,如果B拷貝a,當(dāng)B修改a時(shí),就會(huì)看到B是否改變。如果B也改變了,這意味著它是一個(gè)淺拷貝。如果a沒(méi)有改變,它就是一個(gè)深度拷貝。在本文中,我們還將簡(jiǎn)要討論堆棧、基本數(shù)據(jù)類型和參考數(shù)據(jù)類型,因?yàn)檫@些概念可以更好地理解深度復(fù)制和淺層復(fù)制。讓我們以一個(gè)淺拷貝為例:leta=[0,1,2,3,4],B=aconole.log文件(a===b)a[0]=1控制臺(tái).log(a,b)嗯?明明B抄了a,為什么要修改a陣,B陣也變了,在這里我不禁想。這里,我們要介紹基本數(shù)據(jù)類型和參考數(shù)據(jù)類型的概念。采訪中常問(wèn),基本數(shù)據(jù)類型有哪些,數(shù)字、字符串、布爾、空、未定義五大類。引用數(shù)據(jù)類型(object class)包括object、array、date等。這兩種類型的數(shù)據(jù)存儲(chǔ)如下:a.基本類型-名稱值存儲(chǔ)在堆棧內(nèi)存中,例如,leta=1。復(fù)制B=a時(shí),堆棧內(nèi)存將打開一個(gè)新內(nèi)存。例如,此時(shí)修改a=2時(shí),不會(huì)影響B(tài),因?yàn)锽已經(jīng)消耗了自己的能量,翅膀很硬,不受a的影響。當(dāng)然,leta=1,B=a。雖然B不受a的影響,但它不是深度復(fù)制,因?yàn)樯疃葟?fù)制本身只用于更復(fù)雜的對(duì)象類型數(shù)據(jù)。b、 引用數(shù)據(jù)類型名稱存在于堆棧內(nèi)存中,值存在于堆內(nèi)存中,但堆棧內(nèi)存將為堆內(nèi)存中的值提供引用地址。讓我們畫一幅上面淺層復(fù)制示例的圖:當(dāng)B=a被復(fù)制時(shí),實(shí)際復(fù)制的是a的引用地址,而不是堆中的值。當(dāng)我們?cè)赼[0]=1時(shí)修改數(shù)組時(shí),由于a和B指向同一個(gè)地址,自然B也會(huì)受到影響,這就是所謂的淺拷貝。然后,如果在堆內(nèi)存中創(chuàng)建一個(gè)新的內(nèi)存來(lái)存儲(chǔ)B的值,就像基本類型一樣,一開始就會(huì)達(dá)到深度復(fù)制的效果
淺復(fù)制意味著源對(duì)象和復(fù)制對(duì)象共享同一個(gè)實(shí)體,只是引用的變量不同(名稱不同)。對(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ù)定義的int32、double、struct、enum等類型
什么是深拷貝和淺拷貝?
一般來(lái)說(shuō),深度復(fù)制和淺層復(fù)制的區(qū)別主要在于指針(或指針)。淺層復(fù)制只是將源對(duì)象的指針(它指的是通用對(duì)象,而不僅僅是類的實(shí)例)分配給目標(biāo)對(duì)象。目標(biāo)指針的操作是源對(duì)象的操作,因此在許多情況下,目標(biāo)對(duì)象被銷毀(或跳出),然后源對(duì)象的相關(guān)部分也被銷毀。深度復(fù)制是為目標(biāo)對(duì)象重新分配空間,它可以從源對(duì)象的操作中分離出來(lái)。
編程里面的深拷貝和淺拷貝各是什么意思,怎么理解這兩個(gè)?
你好,淺復(fù)制(shadow clone):只復(fù)制對(duì)象的基本類型,對(duì)象類型仍然屬于原始引用。深度復(fù)制(Deep clone):不僅復(fù)制對(duì)象的基本類,還復(fù)制原始對(duì)象中的對(duì)象。也就是說(shuō),它完全是由新對(duì)象生成的。我希望它能幫助你。