面试官:Java为什么只有值传递?

面试官:Java为什么只有值传递?

Java为什么只有值传递?
值传递和引用传递并不是按照传递的内容来区分的,传递的是引用的并不一定的引用传递,根据定义结果来区分;
在Java中用的是值传递(记好咯,下次面试别回答错了)
在其它方法里面改变引用类型的值都是通过引用改变的,当传递引用对象的时候,传递的是复制的引用的对象句柄,是复制过的,也就是在内存中复制了一个句柄,这两个句柄指向同一个对象,所以你改变这个句柄对应的空间的数据会影响到外部的变量
虽然是复制的,但是指向的是同一个地址,当你把这个句柄指向其它对象的引用时并不会改变原来的值(例子三String),因为你用的是复制过的句柄

猜你喜欢

转载自blog.csdn.net/qq_35297368/article/details/110198034