Java在传递函数时复制整个对象?

时间:2015-03-31 19:19:21

标签: java function hashmap pass-by-reference call-by-value

我的问题类似于“是java传值或传递参考”之间的争斗。但我仍然无法理解当我在函数中传递一个对象时会发生什么。例如,假设我有一个巨大的HashMap,我希望每个对象和每个类都可以访问它。所以我将它作为参数传递给所有需要它的函数。更具体地说,我在main函数中创建了这个HashMap,然后我有一些需要它的对象。

main()
{
    HashMap<Integer,Set<Integer> dataset=readDatasetfromFile(file);
    ArrayList<Object> objects=new ArrayList();

    //assume that I create and fill the list with objects

    for(int i=0;i<objects.size();i++)
    {
        int variable=objects.get(i).doSomething(dataset);
    }

}

但我不明白它是否复制。每次调用函数时都没有必要复制它,因为这是浪费时间。如果它只是将对象作为参考传递将是很好的。谢谢。

正如我所说,没有一个回答的帖子明确说明整个对象是否一点一点地复制到函数或者没有,这是我的主要问题。所以我没有看到与其他问题有任何相似之处。

0 个答案:

没有答案