美文网首页
Java值传递

Java值传递

作者: littlejian | 来源:发表于2017-07-18 07:45 被阅读0次

Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。

基本类型的值传递:

先看一个小例子:

他的输出结果是:

从结果可以看出,在调用changeValue()方法的前后value的值并没有发生变化。

为什么呢?

因为当value作为参数传递给changeValue()方法的时候,传递的是内存空间中value所指向的存储单元的值。传过去之后,内存空间也为x分配存储单元,然后x存储单元的值就是value所传过来的值。此后,在changeValue()方法中对x的一切操作都是针对x所指向的这个存储单元,与value所指向的那个存储单元没有关系了!

对象的值传递(理解为引用传递不妥)

同样来看下例子

他的输出结果:

从结果可以看出,在调用changeValue()方法的前后name的值发生了变化。

这里的值传递我之前是理解为把实体对象的地址传递过去了。

但是实际上这里传递的也是引用对象t2所对应的存储单元的内容。前面基本类型所对应的存储单元的值就是变量的值,而这里存储单元的内容是实体对象的地址。那么传过去之后,t1所对应的存储单元的内容也是实体对象的地址了。同样在changeValue()方法中对t1的一切操作都是针对t1所指向的这个存储单元,与t2所指向的那个存储单元没有关系了!

回顾一下上面的一个值传递的例子,值传递,就是将存储单元中的内容传给调用函数中的那个参数,这里是不是异曲同工,是所谓“值传递”,而非“引用传递”!!

相关文章

  • 自整理3 值传递和引用传递

    java的值传递和引用传递 首先,由于java没有指针机制,所有java归根究底只有值传递,没有引用传递。java...

  • 聊聊Java内部类

    一.磨叽磨叽Java值传递与引用传递 “在Java里面参数传递都是按值传递”即:按值传递是传递的值的拷贝,按引用传...

  • Java值传递、数据加密

    值传递 Java 基本类型值传递,引用类型值传递 内存图解:

  • Java 参数的传递

    Java 的参数是值传递,不是引用传递 Java 中只有值传递,方法按值调用(call by value)。也就是...

  • [译] Java 值传递 VS 引用传递

    Java是值传递还是引用传递一直都有争论,我们最终下个结论,Java是值传递而不是引用传递。如果Java是引用传递...

  • 谈谈Java的方法参数传递机制

    值传递# Java的方法参数传递是值传递!是值传递!值传递!!!重要的事情说三遍。什么是值传递?一个很简单的例子:...

  • 解读Java参数传递

    Java语言的传递方式只有“按值传递”!“按值传递”! “按值传递”!重要的事情要说三遍。不过呢,按值传递可能还不...

  • java中的参数传递(只有值传递没有引用传递)

    Java中只有传值调用(值传递),没有传址调用(址传递或者引用传递)。所以在java方法中改变参数的值是不会改变原...

  • 解决java中的参数传递问题

    Java中只有传值调用(值传递),没有传址调用(址传递或者引用传递)。所以在java方法中改变参数的值是不会改变原...

  • Java参数传递是值传递

    篇首语:Java基本类型传递的是值的拷贝,Java引用类型传递的是对象地址的拷贝。 在java中,java是通过值...

网友评论

      本文标题:Java值传递

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