在Java中,存在两种传递参数的方式:引用对象和值传递。
引用对象指的是将指针传递给方法,方法内对该对象的改变会影响到原对象。值传递指的是将对象的拷贝传递给方法,对该对象的改变不会影响到原对象。
public class Main { public static void main(String[] args) { // 引用对象 String str = "Hello"; System.out.println("Before method: " + str); passReference(str); System.out.println("After method: " + str); // 值传递 int num = 5; System.out.println("Before method: " + num); passValue(num); System.out.println("After method: " + num); } public static void passReference(String str) { str += " World"; System.out.println("Inside method: " + str); } public static void passValue(int num) { num += 5; System.out.println("Inside method: " + num); } }
运行以上代码,输出结果为:
Before method: Hello Inside method: Hello World After method: Hello World Before method: 5 Inside method: 10 After method: 5
可以看到,当传递的参数为引用对象时,方法内的改变会影响到原对象;而当传递的参数为值传递时,方法内的改变不会影响到原对象。