美文网首页
java传引用还是传值

java传引用还是传值

作者: 淡看江湖等雨 | 来源:发表于2019-03-11 11:13 被阅读0次

很长一段时间里,我也没有弄清楚到底是传值还是传引用的,而且网上很多博客的说法不一样,还有很多都是错误的,误导人的。

下面运行几个例子,来说明到底是传值,还是传引用。

基本类型:

基本类型

运行结果:

基本类型运行结果

从上面的截图可以看出来,是将变量a的地址传给了change方法的,并且在change方法中,是改变了变量地址。然后外面方法中的变量a的地址并没有变,值也没有变。

对象类型

对象类型

运行结果:

对象类型运行结果

从上面的结果可以看出,基本的表象是和基本类型没有区别的。

只改变对象的属性

对象属性改变

运行结果:

对象属性改变

这次的运行结果和上面两个不一样了。

总结上面的三个例子可以看出来,change方法都是接收到了传递过来的变量的引用。并且在第一和第二个例子中没有改变掉原对象的引用。我们可以这样理解,在调用change方法的时候,是将原变量的引用传递给了change方法的参数,在第一和第二个例子中通过赋值改变了方法参数(可以理解为实参)的引用,但是并没有改变原变量的引用。在第三个例子中,由于改变的只是方法参数(可以理解为实参)的引用对象的属性的引用,同样的没有改变原变量的引用,因此方法参数和原变量所指向的还是同一个对象,当在change方法里面改变对象的属性时,change方法外部是知道的。

如有理解不对的地方,还望读者留言告之。

相关文章

  • java传引用还是传值

    很长一段时间里,我也没有弄清楚到底是传值还是传引用的,而且网上很多博客的说法不一样,还有很多都是错误的,误导人的。...

  • java调用方法传递机制

    java是传值,不是传引用,有人说有的人说:基础类型传值,对象类型传引用。其实对象类也是传值,只不过对象的值恰好是...

  • 一张图解决java传值传引用问题

    分析此类问题只需要知道两点:java有两种传参方式,基本类型用传值,包装类型用传引用无论是传值还是传引用,形参都是...

  • 一张图解决java传值传引用问题

    分析此类问题只需要知道两点:java有两种传参方式,基本类型用传值,包装类型用传引用无论是传值还是传引用,形参都是...

  • 第二部分:java类与对象

    关于Java对象作为参数传递是传值还是传引用的问题 Java中@Override的作用 Java 访问权限修饰符p...

  • JavaSE基础面试题

    1、Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。 ...

  • Java 基础技术

    Java 函数调用是传值还是传引用?从字节码角度来看看 ! 为 Java 程序员而生的 10 + 最佳库 Redd...

  • 基于堆栈内存详析 Java函数形参是传值还是引用? | C++指

    Java的引用 及 Java函数形参是传值还是引用 Java中没有指针的说法,Java中的引用就类似于C++的指针...

  • java传参数是传值还是引用

    1、基参数是本数据类型 传递是值(或者说值得副本)。 2、参数是对象的话传递的是对象引用的副本。(1.修改引用副本...

  • Java传值还是传引用的思考

    占坑

网友评论

      本文标题:java传引用还是传值

      本文链接:https://www.haomeiwen.com/subject/vgdvpqtx.html