基本类型和引用类型作为参数传递
来源:互联网 发布:c语言编译器vc6.0下载 编辑:程序博客网 时间:2024/06/11 21:52
引用类型数据和基本类型数据作为参数传递有没有差别呢?我们用如下代码进行说明,并配合图解让大家更加清晰
class Demo{ public static void main(String[] args){ int x = 4;//局部变量 show(x); System.out.println("x="+x);//4 } public static void show(int a){ a = 5; }}
基本类型作为参数传递时,其实就是将基本类型变量x空间中的值复制了一份传递给调用的方法show(),当在show()方法中x接受到了复制的值,再在show()方法中对x变量进行操作,这时只会影响到show中的x。当show方法执行完成,弹栈后,程序又回到main方法执行,main方法中的x值还是原来的值。
class Demo { int x ; //全局变量 public static void main(String[] args) { Demo d = new Demo(); x 0 d.x = 5; x 5 show(d); //对象的地址 System.out.println("x="+d.x); x 6 } public static void show(Demo d) { d.x = 6; }}
当引用变量作为参数传递时,这时其实是将引用变量空间中的内存地址(引用)复制了一份传递给了show方法的d引用变量。这时会有两个引用同时指向堆中的同一个对象。当执行show方法中的d.x=6时,会根据d所持有的引用找到堆中的对象,并将其x属性的值改为6.show方法弹栈。
由于是两个引用指向同一个对象,不管是哪一个引用改变了引用的所指向的对象的中的值,其他引用再次使用都是改变后的值。
阅读全文
0 0
- 基本类型和引用类型作为参数传递
- java-基本类型和引用类型作为形式参数
- 基本类型和引用类型参数传递图解
- js 基本类型和引用类型 变量复制 参数传递
- Java基本类型和引用类型(参数传递)
- 基本类型/引用类型的参数传递
- Java传递基本类型:值传递,对象作为参数:引用传递
- java中基本类型的参数传递和引用类型的参数传递
- 基本、数组、引用类型的参数传递
- js 函数传递参数类型问题(基本类型和引用类型)
- Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?
- 基本类型和引用类型值传递的理解
- 【Java】基本类型和引用类型(值传递)
- Java中基本类型和引用类型的传递
- shell基本类型和参数传递
- 传递引用类型参数(ref)
- 传递引用类型的参数
- Java之基本类型和引用类型、引用传递和值传递、“==”和equals()
- 选择控件只显示一行
- 《剑指offer》问题6 从尾到头打印链表 Java实现
- 1047. 编程团体赛(20)
- HDU1394 Minimum Inversion Number
- [UOJ#34]多项式乘法(FFT)
- 基本类型和引用类型作为参数传递
- Qt DLL总结-创建及调用QT的 DLL
- SpringMVC前后台交互
- Cocopods提交自己库及坑
- 高并发量网站解决方案
- Express笔记-two
- HDU 2094 产生冠军
- bzoj1188 [HNOI2007]分裂游戏
- 数据量增加以后的工作总结