首页 > 编程语言 > 详细

Java的引用传递

时间:2021-01-02 00:27:30      阅读:34      评论:0      收藏:0      [点我收藏+]

Java只有值传递,但传递的是引用,类似C/C++中的指针。

往容器里添加引用类型数据

将一个引用装入容器时,若外部程序对该引用指向的内容作了修改,那么容器里的内容也会改变。也就是说将一个引用类型变量加入到容器中,实际上还留了个“指针”在外部,通过对“指针”所指内容的修改会造成容器里内容的改变,这点需要格外注意。
因此往容器中添加元素时,添加不同的元素要使用不同的引用

举例说明:

List<StringBuilder> list=new ArrayList<>();
StringBuilder sb=new StringBuilder("abcd");
list.add(sb);
sb.setCharAt(0,‘e‘);
list.add(sb);
sb.setCharAt(1,‘f‘);
list.add(sb);
sb.setCharAt(2,‘g‘);
list.add(sb);
System.out.println(list);

程序输出:

[efgd, efgd, efgd, efgd]

setCharAt()对引用指向的内容作了修改,则list内的内容也会跟着改变。list包含4个元素,但这四个元素(引用类型)都指向了内存中的同一个地方,引用指向的内容最后被修改成了"efgd",因此4个元素值都是efgd。

引用类型作为函数参数

当引用类型变量作为函数参数时,在函数体内只能对引用指向的内容做修改,而不能给这个引用类型变量重新赋值。因为Java传参传递的是引用,给这个引用类型变量重新赋值后,它就指向了其它地方。

Java的引用传递

原文:https://www.cnblogs.com/Frank-Hong/p/14221188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!