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
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP