Java传参-基本数据类型和引用数据类型作为参数的区别(值传递)

来源:blog.csdn.net 更新时间:2023-05-25 21:55

String类型比较特殊
java中的方法可以传递参数,参数的传递方法就是值传递。

参数有形参和实参,定义方法时写的参数叫形参,真正调用方法时,传递的参数叫实参。

调用方法时,会把实参传递给形参,方法内部其实是在使用形参。

所谓值传递就是当参数是基本类型时,传递参数的值,比如传递i=10,真实传参时,把10赋值给了形参。

当参数是对象时,传递的是对象的值,也就是对象的首地址。就是把对象的地址赋值给形参。

基本类型当做方法的形参时 

当引用类型当做参数的形参时 

基本数据类型和引用数据类型作为参数的区别 
基本数据类型的变量中直接存放数据值本身,所以改的时候改的是数据值本身; 
但是引用类型不同的地方在于真正的数据并没有在栈区的变量中保存,而是在堆区里面保存着,所以虽然也拷贝了一份,也是副本,但是二者指向的是同一块堆区。

引用数据类型就好比如说,两位同学使用的是同一份复习资料,其中一人把资料撕毁了,另一人当然也会受到影响。 
而基本数据类型就好比复印了一份,其中一人将自己的资料撕了,并不影响别人。

总结: 
1).当使用基本数据类型作为方法的形参时,在方法体中对形参的修改不会影响到实参的数值 
2).当使用引用数据类型作为方法的形参时,若在方法体中修改形参指向的数据内容,则 
* 对实参变量的数值产生影响,因为形参变量和实参变量共享同一块堆区;* 
3).当使用引用数据类型作为方法的形参时,若在方法体中修改形参变量的指向,此时不会 
* 对实参变量的数值产生影响,因此形参变量和实参变量分别指向不同的堆区;*