值传递和引用传递的区别
Dec 10, 2019 am 11:50 AM值传递是指基本数据类型在方法中的传递,引用传递是指引用数据类型在方法中的传递。
举例来说,如下图程序代码运行所示: (推荐学习:web前端视频教程)
注:int属于基本数据类型,因此在方法中进行传递和引用时,并不会改变该变量的数值
而arr属于数组,是引用数据类型,因此在方法引用时,实际传递的是该数组在堆内存中的物理内存地址,在方法中对该数组进行操作,则会影响到该数组内部的数值,会发生改变
原因:
在java中,基本数据类型作为参数传递的时候叫做值传递,传的是值本身,
值传递:值在该方法中改变属于局部变量改变
当出了该方法就没有作用了(方法中的传递的基本数据类型就属于局部变量)
在java中,方法的传参,引用数据类型,传的是物理内存地址值,当方法中对数组内部的数值进行改变时,并未改变该数组的物理内存地址,所以当返回到主方法中,数组还是指向原来的地址。
当传入arr数组在内存中的地址值后,堆内存中的连续地址发生改变,可以影响数组整体
特例:String /基本数据类型包装类,虽然都是引用数据类型,但是在发生传参的时候,它们传的是值
Atas ialah kandungan terperinci 值传递和引用传递的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Menyahmistifikasi nilai lulus dan rujukan lulus dalam panggilan fungsi PHP

Bagaimana untuk memahami kaedah lulus nilai dengan betul dalam PHP

Analisis terperinci tentang perbezaan antara hantaran nilai dan hantaran rujukan di Jawa

Perbezaan antara penunjuk struct dan pemindahan nilai struct dalam fungsi Golang

Apakah perbezaan antara lulus dengan nilai dan lulus dengan rujukan dalam java

Kajian mendalam tentang perbezaan antara nilai lulus dan rujukan lulus dalam Java dan kesannya

Penjelasan terperinci tentang perbezaan antara lulus mengikut nilai dan lulus melalui rujukan di Jawa dan kesannya