本文共 1627 字,大约阅读时间需要 5 分钟。
以下是两种主要的编程语言中的代码示例:
public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}
public class Demo1 { public static void main(String[] args) { User user = new User(); Listlist = new ArrayList<>(); list.add(user); user.setName("李四"); System.out.println(list.get(0).getName()); }}
值传递是指方法调用时,传递的参数是按值的拷贝传递。具体实现方式是将实际参数的值复制到方法中的形式参数中,两者之间不会有任何关联。
引用传递是指方法调用时,传递的参数是按引用的方式传递。具体实现方式是将实际参数的内存地址传递给方法中的形式参数参数,两者指向同一个内存空间。
public class TempTest { private void test1(int a) { a = 5; System.out.println("test1方法中的a=" + a); } public static void main(String[] args) { TempTest t = new TempTest(); int a = 3; t.test1(a); System.out.println("main方法中的a=" + a); }}
运行结果:
test1方法中的a=5main方法中的a=3
public class TempTest { private void test1(A a) { a.age = 20; System.out.println("test1方法中的age=" + a.age); } public static void main(String[] args) { TempTest t = new TempTest(); A a = new A(); a.age = 10; t.test1(a); System.out.println("main方法中的age=" + a.age); }}
运行结果:
test1方法中的age=20main方法中的age=20
在Java中,参数传递都是按值传递。对于基本数据类型和String类型,传递的是值的拷贝;对于对象类型,传递的是引用的地址。理解这一点是掌握Java核心概念的关键。
通过以上代码示例和解释,我们可以清楚地看到值传递和引用传递的区别。希望这篇文章能帮助你更好地理解Java的参数传递机制。
转载地址:http://egpez.baihongyu.com/