java是按引用传递还是按值传递?

按值调用意味着调用以参数为值的方法。通过此操作,参数值将传递给参数。

而“按引用调用”是指以参数为参考来调用方法。通过此操作,参数引用将传递给参数。

在按值调用中,对传递的参数所做的修改不会反映在调用者的作用域中,而在按引用进行调用时,对传递的参数所做的修改是持久性的,而更改则反映在调用者的作用域中。

但是Java只使用按值调用。它创建引用的副本,并将它们作为值传递给方法。如果引用包含对象,则可以在方法中修改对象的值,但不能修改整个对象。参见示例-

示例

public class Tester {

   public static void main(String[] args) {

      Point point = new Point();

      System.out.println("X: " +point.x + ", Y: " + point.y);

      updatePoint(point);

      System.out.println("X: " +point.x + ", Y: " + point.y);

   }

   public static void updatePoint(Point point) {

      point.x = 100;

      point.y = 100;

   }

}

class Point {

   public int x, y;

}

输出结果

X: 0, Y: 0

X: 100, Y: 100

以上是 java是按引用传递还是按值传递? 的全部内容, 来源链接: utcz.com/z/335334.html

回到顶部