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

好久没有回这里了~~~今天这篇干货就当是预热吧!

今天无意中看到一篇关于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++中的,在引用传递的时候,实参与形参就是同一块内存区间,形参就是一个实参的代号而已;但是值传递的时候,实参+形参,总共要开辟两个不同的内存空间,这两个内存空间是互相独立的,互不影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值