Java参数传递

时间:2014-09-15 21:46:42

标签: java argument-passing

我知道有几篇文章解释了Java中的参数传递。我也知道参数是通过值传递的,但值是对象的引用。说我有以下2个方法。

public void append(List<String> list){
    list.add("some string");
}

public void incr(int count){
    count++;
}

如果我调用第一个方法,则对象list会被修改,并且修改后的值也会在方法调用之后存在。但是当我调用incr(count)时,一旦方法调用返回,count的修改值就会丢失。

为什么在某些情况下,值会被修改,但在另一种情况下则不会?

1 个答案:

答案 0 :(得分:-1)

  

我也知道参数是按值传递的,但值是对象的引用。

这不是java所做的。 Java是按值传递的。如果某些内容是引用类型,那么该引用将按值传递。但这与通过REFERENCE传递不同。因此,在第二个示例中,count变量按值传递,因此您的更改将丢失。