欢迎来到天天文库
浏览记录
ID:34504526
大小:68.58 KB
页数:4页
时间:2019-03-07
《黑马程序员java教程:基本数据类型参数及引用数据类型参数传递》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基本数据类型参数及引用数据类型参数传递 示例1:基本数据类型参数传递1.//基本数据类型参数传递2.classDemo3.{4. publicstaticvoidmain(String[]args){5. intx=3;6. show(x);7. System.out.println("x="+x);8. }9. 10. publicstaticvoidshow(intx){11. x=4;12.
2、 }13.}复制代码 运行结果: 执行过程说明: 1、jvm调用main方法,main方法入栈。 2、将x变量值设置为3。 3、main方法调用show方法,3作为基本数据类型参数赋值给show方法参数x,也就是说,此时show方法的参数x值为3。 4、show方法执行x=4后,show方法的参数x值变为4。 5、show方法执行结束,show方法出栈。show方法参数x也随之出栈。 6、main方法打印x的值。此时x指的是main方法中的x变量的值(show方法中的参数x已经随show方法一
3、块出栈了)。所以,打印出来的x值为3而不是4。 7、main方法执行结束,出栈。 示例2:引用数据类型参数传递1.//引用数据类型参数传递2.classDemo3.{4. intx=3;5. 6. publicstaticvoidmain(String[]args){7. Demod=newDemo();8. d.x=9;9. show(d);10. System.out.println(d.x);
4、11. }12. 13. publicstaticvoidshow(Demod){14. d.x=4;15. }16.}复制代码 运行结果: 执行过程说明: 1、jvm调用main方法,main方法入栈。 2、创建Demo对象d(在堆内存中创建,d作为引用变量,指向堆内存中创建的实体对象),并将d指向的实体对象中的属性x的值设置为9。 3、main方法调用show方法,d作为引用数据类型参数赋值给show方法参数d,也就是说,此时show方法的参数
5、d和main方法中的变量d同时指向了堆内存中同一个实体对象。 4、show方法执行d.x=4后,堆内存中的实体对象的x属性值变为4。 5、show方法执行结束,show方法出栈,show方法参数d也随之出栈。虽然show方法参数d出栈了,但是,由于main方法的变量d依然引用着堆内存中的实体对象,因此堆内存中的实体对象不会被垃圾回收器清除。 6、main方法打印d.x的值。此时,d指的是main方法中的引用变量x,d.x指的依然是堆内存中的实体对象中x的值。所以,打印出来的值为4而不是9。 7、main方法
6、执行结束,出栈。 总结: 在java中,方法参数的传递永远都是传值,而这个值,对于基本数据类型,值就是你赋给变量的那个值。而对于引用数据类型,这个值是对象的引用,而不是这个对象本身。
此文档下载收益归作者所有