您的位置:首页 > 编程语言 > Java开发

【转】Java中只有按值传递,没有按引用传递!

2016-07-15 10:16 295 查看
好久没有回这里了~~~今天这篇干货就当是预热吧!

今天无意中看到一篇关于Java中参数传递的文章,是让我一不小心就“怀疑世界”了,深感还是不能对自己太自信啊,也不能想当然,实践才是检验真理的唯一标准。

首先,可以看看http://blog.csdn.net/EthanCo/article/details/51762753这篇文章中的代码,如果理解不了的话,再看下面的文章。

传送门:http://guhanjie.iteye.com/blog/1683637I(注意,一定要理解文章中的那几张图解以及最后的那几段话)

这篇文章较为细致地讲解了关于java中参数传递的问题,看过之后,也许你会有如同上文的感受的。

如果在看了第二篇文章之后,还是对下面的这段代码感觉似懂非懂,不知其所以然的话,不妨细细品味一下接下来我的个人理解(当然,欢迎各位指出不足之处)。

public static void changeStr(String a, String b) {
a = "hello";
b = "world";
}

public static void main(String[] args) {
......
changeStr(stringA, stringB);
......
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我是一条华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

仔细想了想,还是用图吧!



接下来的这段话属于个人意淫,可能存在误解,也可能不严谨,但为容易理解,就将就着说。

不同于引用传递,如C++中的,在引用传递的时候,实参与形参就是同一块内存区间,形参就是一个实参的代号而已;但是值传递的时候,实参+形参,总共要开辟两个不同的内存空间,这两个内存空间是互相独立的,互不影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: