Java 为什么将图像处理为新变量并不';不是复制数据而是复制指针?

Java 为什么将图像处理为新变量并不';不是复制数据而是复制指针?,java,Java,当我做某事时,请注意: BufferedImage image = otherImage; 而image也受到了影响otherImage也受到了影响?这就是java内存模型的工作原理。 放置在堆中的所有对象。在方法框架中,您只能访问引用此对象的链接。可以通过此链接操纵对象。 您发布的语句表示希望获取第二个链接并将其引用到与第一个链接引用的对象相同的对象 若你们需要复制对象,你们需要自己去关注。有几种方法可以实现这一点。 例如,您可以创建一些复制方法,该方法将获取初始对象,获取其字段,创建一个新

当我做某事时,请注意:

BufferedImage image = otherImage;

image
也受到了影响
otherImage
也受到了影响?

这就是java内存模型的工作原理。 放置在堆中的所有对象。在方法框架中,您只能访问引用此对象的链接。可以通过此链接操纵对象。 您发布的语句表示希望获取第二个链接并将其引用到与第一个链接引用的对象相同的对象

若你们需要复制对象,你们需要自己去关注。有几种方法可以实现这一点。 例如,您可以创建一些复制方法,该方法将获取初始对象,获取其字段,创建一个新实例,并将这个新创建的对象的字段设置为以前提取的字段


UPD:看一看。对于BuffereImage的具体情况,有一些解释。但是这个问题似乎需要更新并标记为重复。

因为Java中的所有类型(原始类型除外)都是这样工作的。Java变量是引用,它们指向一个对象,所以分配给引用只会使它指向另一个对象,而不会创建新对象。那么我如何才能将所有数据复制到一个新图像(使用逐像素光栅处理)?这回答了你的问题吗?谢谢,这真的很有帮助,我没想到我这么笨。)那很好,伙计)如果对你有帮助的话,你可以把我的答案标记为接受。祝你好运