Java中對象的創(chuàng)建
clone顧名思義就是復制, 在Java語言中, clone方法被對象調(diào)用,所以會復制對象。所謂的復制對象,首先要分配一個和源對象同樣大小的空間,在這個空間中創(chuàng)建一個新的對象。那么在java語言中,有幾種方式可以創(chuàng)建對象呢?
1 使用new操作符創(chuàng)建一個對象
2 使用clone方法復制一個對象
那么這兩種方式有什么相同和不同呢? new操作符的本意是分配內(nèi)存。程序執(zhí)行到new操作符時, 首先去看new操作符后面的類型,因為知道了類型,才能知道要分配多大的內(nèi)存空間。分配完內(nèi)存之后,再調(diào)用構造函數(shù),填充對象的各個域,這一步叫做對象的初始化,構造方法返回后,一個對象創(chuàng)建完畢,可以把他的引用(地址)發(fā)布到外部,在外部就可以使用這個引用操縱這個對象。而clone在第一步是和new相似的, 都是分配內(nèi)存,調(diào)用clone方法時,分配的內(nèi)存和源對象(即調(diào)用clone方法的對象)相同,然后再使用原對象中對應的各個域,填充新對象的域, 填充完成之后,clone方法返回,一個新的相同的對象被創(chuàng)建,同樣可以把這個新對象的引用發(fā)布到外部。
復制對象 or 復制引用
在Java中,以下類似的代碼非常常見:
Person p = new Person(23, "zhang"); Person p1 = p; System.out.println(p); System.out.println(p1);
分享名稱:Java中的clone方法詳解_動力節(jié)點Java學院整理-創(chuàng)新互聯(lián)
文章出自:http://www.yijiale78.com/article28/dgedcp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、自適應網(wǎng)站、關鍵詞優(yōu)化、軟件開發(fā)、用戶體驗、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容