基本数据类型和引用数据类型作为方法参数,在传递时有什么不同之处

 我来答
晨愁葬我于水
推荐于2017-09-24 · TA获得超过510个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:271万
展开全部
基本数据类型按值传递,相当于复制了一份过去,引用数据按地址传递,两个地方根据地址使用同一份数据,如被更改,则原有数据也会更改,例如数组,在传递数组时,如果接收到数组之后,对其修改,那么原来的数组也会同时修改,因为它们指向同一个地址!
追问
谢谢
568145421
2012-08-16 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
你好,上面的“晨愁葬我于水”回答的挺不错的。只是这个不适用于Java。
在Java语言里,只有传递的引用对象为不可变对象时,才是所谓的按址传递。下面我专门写了一个例子,供你参考,你需要仔细体会。
public class BaiduTest01 {

private String str = "sam" ; //str是引用类型,但是String是final的
private int num = 2 ;//num是基本类型
private Float floatNum = Float.valueOf(3.2f) ;//floatNum是引用类型,但是Float是final的
private char[] ch = {'a','b','c'} ; //常见的引用类型

public void changeString(String str) {
str = "tom" ;
}

public void changeFloat(Float floatNum) {
floatNum = Float.valueOf(6.4f) ;
}

public void changeInt(int num) {
num = 20 ;
}

public void changeCharArray(char[] ch) {
ch[1] = 'd' ;
}

public static void main(String[] args) {
BaiduTest01 test = new BaiduTest01() ;
test.changeString(test.str) ;
test.changeInt(test.num) ;
test.changeFloat(test.floatNum) ;
test.changeCharArray(test.ch) ;
System.out.println(test.str) ; //输出结果不变
System.out.println(test.num) ;//输出结果不变

System.out.println(test.floatNum) ;//输出结果不变
System.out.println(test.ch) ;//输出结果改变
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式