map 深度复制与浅复制的区别

浅复制:只复制引用,但是引用所指向的对象 是同一块内存区域,这两个引用只要有其中一个操作该内存区域,内容都会同时改变(就相当于一个人有两个思想驱动)

深度复制:也叫完全复制,完全独立的引用和完全独立的两块内存区域,互不影响,(相当于两个独立的人)


浅复制例子:


上面程序的期望输出值是, 
mapFrist的值均为1, 
但是实际上输出结果为: 
{key1=1} 

{key2=2, key1=1}



深度复制例子:


map.putAll()

如上,输出结果为: 
{key1=1} 
{key1=1}