相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

获取对象的副本

我不完全理解Java何时传递副本/值以及何时传递"引用"(指针).

我正在尝试分配我拥有的静态对象的副本,但我不确定如何去做.

我有这个:

static ArrayList<MyObject> myObjects;
Run Code Online (Sandbox Code Playgroud)

我想获得myObjects的副本,以便我可以在不影响原始值的情况下使用值.当我使用这样的getter时它是否传递引用或副本/值:

public static ArrayList<MyObject> getMyObject()
{
    return ThisClass.myObjects;
}
Run Code Online (Sandbox Code Playgroud)

那回报是什么?如果是参考,我怎样才能获得副本?

我见过这些:

(如何在Java中复制对象?)

(Java:getter方法与公共实例变量:性能和内存)

(Java是"通过引用传递"还是"按值传递"?)

(如何将Java赋值指向对象而不是复制?)

但我仍然不太明白我会得到什么.

java getter pointers reference

2
推荐指数
1
解决办法
155
查看次数