Android上的Java:向ConcurrentLinkedQueue添加项目是否复制它

时间:2017-08-24 10:39:27

标签: java android queue

所以我来自C ++世界,其中将项目添加到容器时的标准行为是复制它。

我无法在ConcurrentLinkedQueue的文档中找到此信息,因此它可能是Java容器的基础。

通过add方法将项​​目添加到队列时,项目是否已复制,或者只是对复制项目的引用?

我意识到通过复制引用来传递对象,但我并不认为add方法可以在将其添加到队列之前创建副本,以确保线程安全。

另外,您是否可以提供相关文档的链接,以解释其工作原理?

1 个答案:

答案 0 :(得分:1)

根据定义:当将java中的对象添加到容器中时,它将通过引用传递。

您可以在add方法中创建一个新的Object。例如:

list.add(new NewObject(oldObject));

而不是:

list.add(oldObject);

当然你需要适当的构造函数才能做到这一点。