值传递与引用传递
作者:互联网
值传递与引用传递
值传递
值传递:是指在调用函数时,将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,就不会影响到实际参数
值传递是对于是对基本数据而言,例如下面例子,number没有改变。
public class Test01 {
public static void main(String[] args) {
int number = 10;
new Test01().change(number);
System.out.println(number);
}
public void change(int a){
a+=1;
}
}
引用传递
引用传递:是指在调用函数时,将实际参数的地址传递到函数中,那么在函数中对参数进行修改,将会影响到实际参数
引用数据类型分为两个部分,引用变量和对象,这两个部分放在不同的地方,引用变量在栈中,而对象是放在堆内存中的,引用变量指向对象。
如下图所示,当传递参数之前会将参数进行复制,但是复制的是引用变量,复制后的引用变量还是指向内存中的同一对象,所以引用传递中,函数修改了参数会影响实际参数
引用传递是对于引用数据类型而言,例如对于User类姓名的修改,会改变对象的name。
public class Test01 {
public static void main(String[] args) {
User user = new User("小明", 12);
new Test01().change(user);
System.out.println(user);
}
public void change(User a){
a.setName("小张");
}
}
标签:number,传递,参数,引用,Test01,public 来源: https://www.cnblogs.com/xiaofenga/p/16697467.html