Java 从函数返回的值

Java 从函数返回的值,java,methods,Java,Methods,假设我有以下课程: class A{ private Map<String, String> map; private Map<String, String> getMap(){ return map; } private doActionOnMap(){ Map<String, String> map = getMap(); //Is the map returned by getMap()

假设我有以下课程:

class A{
    private Map<String, String> map;

    private Map<String, String> getMap(){
        return map;
    }

    private doActionOnMap(){
        Map<String, String> map = getMap(); //Is the map returned by getMap() 
                                            //refers to the private field map?
    }
}

也就是说,当某个值通过方法返回时,它将是原始对象的另一个副本,或者它将引用位于方法内部的对象?

它是一个引用类型,因此您将得到的只是对原始对象的引用。它不是复制品

我建议您查找引用类型和值类型之间的差异


这是一个参考…当你想要一个克隆时,你必须自己实现它

private Map<String, String> map;

你会得到一份推荐信,而不是它的副本。如果您更改它,则该类中使用它的所有方法都将更改它

显然是相同的,但由于您从未分配它,因此只会得到null。
Map<String, String> myMap = a.getMap();