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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP