摘要:中方法参数的传递众所周知,语言中只有值传递,看起来很好理解的一句话,那么来看一个例子输出结果这是一个经典问题,我想说说自己的理解首先,变量和分别包含一个字符串对象的引用。按值传递,当变量和传递给方法,和的引用的副本被传递。
Java中方法参数的传递:
众所周知,Java语言中只有值传递,看起来很好理解的一句话,那么来看一个例子:
输出结果:
这是一个经典问题,我想说说自己的理解:
首先,变量sa和sb分别包含一个字符串对象的引用。不是引用本身,它们是用于存储一个内存地址的变量。Java按值传递,当变量sa和sb传递给opertion()方法,sa和sb的引用的副本被传递。而不是sa和sb引用本身。
如图:
作为参数传入opertion()方法时:
当在opertion()方法中sb=sa时:
由此可以看出sa和sb的副本都指向’A’的内存地址,但是主方法中的sa和sb引用都没有发生过变化,变化的是副本sa和sb的指向地址,下面还有一段代码说明问题:
大家都知道String是不可变的,改变的只是引用地址,由此可以说明参数传进来的不是引用的本身
PS:(希望大家看的时候能提出自己的看法,并能指出有错误的或表达不准确的地方,在下定当积极配合)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/70648.html
摘要:有种流行的观点说的另外一个特殊之处在于,在方法调用传参数时,是按值传递的,其他普通对象是引用传递。然而这种说法是大大错误的,至少是完全误解了值传递和引用传递的概念。方法调用传参只有一种传递就是值传递。 上篇文章说到Java的String是比较特殊的对象,它是不可变的。 有种流行的观点说String的另外一个特殊之处在于,在方法调用传参数时,String是按值传递的,其他普通对象是引用传...
摘要:为什么中只有值传递首先回顾一下在程序设计语言中有关将参数传递给方法或函数的一些专业术语。方法的参数和被初始化为两个对象引用的拷贝,这个方法交换的是这两个拷贝总结程序设计语言对对象采用的不是引用调用,实际上,对象引用是按值传递的。 1、为什么 Java 中只有值传递? 首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表示方法...
摘要:接下了,我们调用方法,来尝试改变的值以此验证中的传值方式。我们将作为实参传给方法,形参来接受这个实参,在这里就体现出了两种传参方式的不同。中只有值传递这一种方式,只不过对于引用类型来说,传递的参数是对象的引用罢了。 前言 这几天在整理java基础知识方面的内容,对于值传递还不是特别理解,于是查阅了一些资料和网上相关博客,自己进行了归纳总结,最后将其整理成了一篇博客。 值传递 值传递是指...
摘要:作用用来过滤文件对象抽象方法用来过滤文件的方法测试指定抽象路径名是否应该包含在某个路径名列表中。参数使用方法遍历目录得到的每一个文件对象接口实现此接口的类实例可用于过滤器文件名。 showImg(https://segmentfault.com/img/bVbwliY?w=1212&h=129);FileFileter showImg(https://segmentfault.com/...
阅读 2582·2021-11-22 15:25
阅读 1377·2021-11-15 17:59
阅读 1100·2021-09-29 09:34
阅读 1478·2021-09-26 09:46
阅读 3003·2021-09-02 15:40
阅读 1144·2019-08-30 15:56
阅读 3228·2019-08-30 15:55
阅读 666·2019-08-29 17:08