标签:
本文主要列出一些Java常用到确又让大家不怎么注意的问题。
将会不断更新,欢迎关注……
如有觉得不合理之处,欢迎评论交流,没有火花怎么印象深刻?
(1)Java到底是值传递?还是引用传递?
揪出这个问题是因为有同学说开始写博客了,于是他写怎么篇博客:Java到底是值传递?还是引用传递?,说让我看看。
我看完觉得挺合理的,马上给他回复说“不错哦”。合理是合理,但是按照他的说法,那什么不是传值过去啊,都是值传递?
今天早上上班,来得比较早,就百度了一下这个问题,于是又看到了另外一篇文章:Java:按值传递还是按引用传递详细解说,里面评论是各种撕逼。还是没有得到统一答案啊。
后面又看到另外一篇文章:Java中只有按值传递,没有按引用传递!,以及该文章对应的评论。我也有了自己的看法。
综上,“在Java里面只有基本类型和按照下面这种定义方式的String是按值传递(就是直接使用双引号定义字符串方式:String str = “小宝鸽”),其它的都是按引用传递。”应该是正确的。
java.lang.String的实例对象一旦创建,它包含的字符序列就不能被改变了。
String传递的也是引用副本的传递,但是因为String为final的,所以和按值传递等同的。
其实按值还是按引用的区别在于“是否在传递的时候进行对象的内存拷贝”,java中基本类型是由于在JVM中存储区域不同于普通对象所以传递前会拷贝,传递的是拷贝后的值,但是对象在传递的时候不拷贝,直接传“引用值”,指向同一片对象堆内存区域。
标签:
原文地址:http://blog.csdn.net/u013142781/article/details/50683950