java深浅拷贝及hashmap1.8的源码分析

hashmap1.8的源码分析

类定义

public class HashMap<K,V>
         extends AbstractMap<K,V> 
         implements Map<K,V>, Cloneable, Serializable

这里写图片描述
由图看出,hashmap1.8的主要优化是当发生多次哈希冲突时加入了红黑树

java深浅拷贝

浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。

这里写图片描述

深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/u011747152/article/details/79384011