1:java中的值传递和引用传递,本质上是没有区别的,只是看的角度不同而已。
基本类型传递变量,都可以直接理解为值传递。
值传递和引用传递:比如一个对象作为一个方法的参数传递,那么在这个传递的过程中,传递的是对象的引用地址,你可以理解成为引用传递。但是如果单从传递的角度来说,传递的是一个对象的引用地址,这个引用地址本身就是一个值,所以也可以理解成是值传递。
2:举例说明:
引用传递举例
一:如下面一段代码,我想将集合变成空集合,但是运行程序后却未达到效果
原因分析:
首先这个可以从引用传递的角度分析比较合适,虽然方法中将list对象赋值为一个空集合,但是本质上是将list的引用地址指向了另一个对象的地址,只不过新的对象是空的,但是原来的对象并没有改变,所以结果会是8
二:下面的代码是将集合的一个元素移除,这次达到了效果。
原因分析:
首先这个可以从值传递和引用传递分析,值传递是指传递了一个对象的地址(传递的值),这个地址指向一个对象,方法中对改地址指向的对象就行了修改,所以会是7
不管是值传递和引用传递,从不同角度分析都是可以理解的。此博客方便自己记忆,不做技术参考。