没那么复杂:java中除了原型和string之外,其他的都是引用传递。
哥们 ,java中都是值传递,没有引用传递这一说,都是进行的值传递,引用传递这一说法是不正确的!
是的,补充一点:java中方法的调用,传递的都是参数变量的一个拷贝,不管是基本类型还是引用类型
java中木有值传递那么一说,这种c++的思想用到java中不适用的!你懂得java是oop编程!
如果方法接受对象的时候,并非是”引用“而是指向的那个内存value。
重申java木有”引用“一说!当然你可以这样读,但是程序中木有,你或者可以理解为对象的标示!
Java中的值传递和引用传递其实是同一回事,如果传递一个对象,其实传递的是该对象的地址值,也是一个值传递。之所以分开说估计是让初学者易于辨别吧。
值传递和引用传递都是复制栈中的数据,引用其实是在栈中存储了堆中的某个对象的存储地址,举个例子堆中有个User对象,其在堆中的地址为1002,如果你定义的引用为user,其实user就是栈中的一个存储空间,它存储的内容就是1002。归根结底,正如上面大家说的值传递和引用传递其实都是复制栈中数据,不同的是值传递时复制计算所用的值,而引用传递复制的是对象的地址,你用这个堆地址去操作堆中数据。
Java都是值传递,一种是传递常量值(8种原始数据类型和字符串),一种是传递引用值