區(qū)別分析:
(推薦學習:java入門程序)
淺復制
被復制對象的所有變量都含有與原來對象相同的值,而所有其他對象的引用仍然指向原來的對象。
換言之,淺復制僅僅復制所考慮的對象,而不復制它所引用的對象。
深復制
被復制對象的所有變量都含有與原來對象相同的值,除去那些引用其他對象的變量。那些引用其他對象的變量將指向被復制的新對象,而不再是原有的那些被引用的對象。
換言之,深復制把復制的對象所引用的對象都復制了一遍。
(視頻教程推薦:java視頻教程)
定義如下一個類:
class Test { public int i; public StringBuffer s; }
下圖展示了對這個類的對象進行復制時,淺復制與深復制的區(qū)別: