您的位置 首页 技术

值传递和引用传递的区别

值传递是指基本数据类型在方法中的传递,引用传递是指引用数据类型在方法中的传递。 举例来说,如下图程序代码运行所示: (推荐学习:web前端视频教程) 注:int属于基本数据类型,因…

值传递是指基本数据类型在方法中的传递,引用传递是指引用数据类型在方法中的传递。

举例来说,如下图程序代码运行所示: (推荐学习:web前端视频教程)

cj-17.png

注:int属于基本数据类型,因此在方法中进行传递和引用时,并不会改变该变量的数值

而arr属于数组,是引用数据类型,因此在方法引用时,实际传递的是该数组在堆内存中的物理内存地址,在方法中对该数组进行操作,则会影响到该数组内部的数值,会发生改变

原因:

在java中,基本数据类型作为参数传递的时候叫做值传递,传的是值本身,

值传递:值在该方法中改变属于局部变量改变

当出了该方法就没有作用了(方法中的传递的基本数据类型就属于局部变量)

在java中,方法的传参,引用数据类型,传的是物理内存地址值,当方法中对数组内部的数值进行改变时,并未改变该数组的物理内存地址,所以当返回到主方法中,数组还是指向原来的地址。

当传入arr数组在内存中的地址值后,堆内存中的连续地址发生改变,可以影响数组整体

特例:String /基本数据类型包装类,虽然都是引用数据类型,但是在发生传参的时候,它们传的是值

以上就是值传递和引用传递的区别的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/19397.html

为您推荐

返回顶部