Rumah >masalah biasa >值传递和引用传递的区别

值传递和引用传递的区别

(*-*)浩
(*-*)浩asal
2019-12-10 11:50:2418479semak imbas

值传递和引用传递的区别

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

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

cj-17.png

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

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

原因:

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

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

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

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

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

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

Atas ialah kandungan terperinci 值传递和引用传递的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:文件标识符包括Artikel seterusnya:机器智能的主要支撑技术