// Java值传递示例
public class ValuePassingExample {
public static void main(String[] args) {
int num = 10;
System.out.println("Before method call: " + num); // 输出: Before method call: 10
changeValue(num);
System.out.println("After method call: " + num); // 输出: After method call: 10
}
public static void changeValue(int num) {
num = 20;
System.out.println("Inside method: " + num); // 输出: Inside method: 20
}
}
// Java引用传递示例
class ReferencePassingExample {
public static void main(String[] args) {
Person person = new Person("Alice");
System.out.println("Before method call: " + person.name); // 输出: Before method call: Alice
changeName(person);
System.out.println("After method call: " + person.name); // 输出: After method call: Bob
}
public static void changeName(Person person) {
person.name = "Bob";
System.out.println("Inside method: " + person.name); // 输出: Inside method: Bob
}
}
class Person {
String name;
Person(String name) {
this.name = name;
}
}
值传递示例 (ValuePassingExample
):
num
是一个基本数据类型(int
)。当我们将 num
作为参数传递给 changeValue
方法时,实际上是传递了 num
的副本。因此,在方法内部对 num
的修改不会影响原始变量的值。引用传递示例 (ReferencePassingExample
):
person
是一个对象引用。当我们传递 person
给 changeName
方法时,传递的是对象引用的副本。这意味着在方法内部对对象属性的修改会反映到原始对象上,因为它们指向同一个对象实例。Java 中所有的参数传递都是按值传递,但对于对象引用来说,传递的是引用的副本,因此可以修改对象的内容。
上一篇:java调用第三方接口
下一篇:windows查看java进程
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站