Java中的值传递
Java中的有八种基本数据类型:short、byte、char、int、long、float、double、boolean,它们作为参数传递时即为值传递
代码示例:
public static void main(String[] args) {
int a=0;
quoteTest.test(a);
System.out.println(a);
}
static void test(int a){
a=5;
}
运行结果:
可以看到结果还是0,没有改变。
Java中引用传递
Java中的标准引用类型有三种:类类型、接口类型、数组类型,它们作为参数进行传递时即为引用传递。
代码示例:
public class quoteTest {
public static void main(String[] args) {
Person p=new Person("小强",18);
quoteTest.test(p);
System.out.println(p.getAge());
}
static void test(Person p1){
p1.setAge(20);
}
}
运行结果
可以看到,引用传递时,如果对引用值进行改变,则会改变原值。
总结:1、值传递时,传递的为实际值,形参的修改不会影响实际参数。在内存中实际为两个参数,传递即copy过去
2、引用传递时,传递的为引用的地址值,对形参的修改会影响实际参数。在内存中变现为同一个对象,传递仅仅把地址copy过去。