黑马程序员技术交流社区
标题:
Java中传值和传引用在什么情况具体使用?
[打印本页]
作者:
沿途的记忆
时间:
2014-6-24 12:53
标题:
Java中传值和传引用在什么情况具体使用?
去企业面试的时候,老是被问到这个问题,感觉每次回答的让面试官不是很满意,数据类型的时候是传值,还是什么情况下传值,求解答,顺便刷下论坛,帮帮忙..............
作者:
杨庆雷
时间:
2014-6-24 14:20
1、一般情况基本数据类型传的是值,包括基本类型的封装,如Integer、Double等,String也是是传值,比较特殊。
而非基本类型传递是引用,引用也是一种类型,它也有值,而这个值就是对象实际的内存地址,通过这个引用可以改变内存的地址
2、对于函数调用,需要看实现方式,有的会对传递的对象状态进行改变,有的不会对对象状态进行改变,简单的判断规则是,如果返回值是void,那么就很可能会对对象状态进行改变,而返回值不为void,那么就很可能不会对对象状态进行改变。
下面举个传引用的例子:
StringBuffer a= new StringBuffer("xX");
函数调用:
一、会对参数对象状态进行改变,返回值是void
void change(StringBuffer b){
b.append("ddd");
}
二、不会对参数对象状态进行改变,返回值不为void
StringBuffer change(StringBuffer b){
b = new StringBuffer("ss")
b.append("ddd");
return b;
}
作者:
陈培果
时间:
2014-6-24 14:54
学习了。。。
作者:
沿途的记忆
时间:
2014-6-25 01:26
杨庆雷 发表于 2014-6-24 14:20
1、一般情况基本数据类型传的是值,包括基本类型的封装,如Integer、Double等,String也是是传值,比较特殊 ...
多谢了!
作者:
itisdream
时间:
2014-6-25 08:55
学习了,确实还没注意到这细小的差别。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2