首页 > 代码库 > java中值类型和引用类型的不同实例(三)
java中值类型和引用类型的不同实例(三)
毫无疑问,函数传值和函数传引用的区别是 传值是传一份数据拷贝 传引用的话 是可以操纵对象.
但是一般人忽略的是传引用其实也是传一份引用的副本.
示例如下:
1 class Number 2 { 3 public int num; 4 } 5 public class Topcoder 6 { 7 public static void main(String[] args) 8 { 9 Number a=new Number();10 a.num=1;11 Number b=new Number();12 b.num=2;13 swap(a,b);14 System.out.println(a.num+" "+b.num);15 }16 17 static void swap(Number a,Number b)18 {19 Number temp;20 temp=b;21 b=a;22 a=temp;23 }24 }
output为:
1 2
分析如下:
swap前
引用a----------->Number(num:1)
引用b----------->Number(num:2)
swap中
由于函数只是传了一份引用的副本并不对引用a和b造成任何影响 所以可以忽略对其影响
swap后
因为swap函数对引用a和b无任何影响,并且swap函数中并无改变对象内容,所以没有变化
java中值类型和引用类型的不同实例(三)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。