Map拷贝 关于对象深拷贝 浅拷贝的问题

  • 时间:
  • 浏览:3
  • 来源:大发5分排列5_极速5分排列3

怎样才能外理?

使用深拷贝,拷贝整个对象,而非引用

Map含有个土妙招叫做putAll土妙招,可不也能实现深拷贝,如下

这里是可能性map处于了浅拷贝,mapFirst可是基因重组了map的引用,和map仍使用同一一3个内存区域,什么都,在修改map的可是,mapFirst的值同样会处于变化。

浅基因重组:则是只基因重组对象的引用,一一3个引用仍然指向同一一3个对象,在内存中占用同一块内存。被基因重组对象的所有变量都含有与原先的对象相同的值,而所有的对可是 对象的引用仍然指向原先的对象。换言之,浅基因重组仅仅基因重组所考虑的对象,而不基因重组它所引用的对象。

深基因重组:被基因重组对象的所有变量都含有与原先的对象相同的值,除去哪些引用可是 对象的变量。哪些引用可是 对象的变量将指向被基因重组过的新对象,而不再是原有的哪些被引用的对象。换言之,深基因重组把要基因重组的对象所引用的对象都基因重组了一遍。

如上,输出结果为:

{key1=1}

{key1=1}

顶端进程池池的期望输出值是,

mapFrist的值均为1,

可是 实际上输出结果为:

{key1=1}

{key2=2, key1=1}