下载此文档

Java里的按值传递与引用传递.doc


文档分类:生活休闲 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
按值传递还是按引用传递这个在Java里面是经常被提起的问题,也有一些争论,似乎最后还有一个所谓的结论:“在Java里面参数传递都是按值传递”。事实上,这很容易让人迷惑,下面先分别看看什么是按值传递,什么是按引用传递,只要能正确理解,至于称作按什么传递就不是个大问题了。1:按值传递是什么指的是在方法调用时,传递的参数是按值的拷贝传递。示例如下:lassTempTest{privatevoidtest1(inta){//做点事情}publicstaticvoidmain(String[]args){TempTestt=newTempTest();inta=3;(a);//这里传递的参数a就是按值传递}}按值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关了。示例如下:lassTempTest{privatevoidtest1(inta){a=5;("test1方法中的a==="+a);}publicstaticvoidmain(String[]args){TempTestt=newTempTest();inta=3;(a);//传递后,(”main方法中的a===”+a);}}运行结果是:test1方法中的a===5main方法中的a===32:按引用传递是什么指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。示例如下:lassTempTest{privatevoidtest1(Aa){}publicstaticvoidmain(String[]args){TempTestt=newTempTest();Aa=newA();(a);//这里传递的参数a就是按引用传递}}classA{publicintage=0;}3:按引用传递的重要特点传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。示例如下:lassTempTest{第2行privatevoidtest1(Aa){=20;("test1方法中的age="+);第5行}第6行publicstaticvoidmain(String[]args){第7行TempTestt=newTempTest();第8行Aa=newA();=10;(a);(”main方法中的age=”+);第12行}第13行}第14行classA{第15行publicintage=0;第16行}运行结果如下:test1方法中的age=20main方法中的age=204:理解按引用传递的过程——内存分配示意图要想正确理解按引用传递的过程,就必须学会理解内存分配的过程,内存分配示意图可以辅助我们去理解这个过程。用上面的例子来进行分析:(1):运行开始,运行第8行,创建了一个A的实例(2):运行第9行,是修改A实例里面的age的值(3):运行第10行,是把main方法中的变量a所引用的内存空间地址,按引用传递给test1方法中的a变量。请

Java里的按值传递与引用传递 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zbfc1172
  • 文件大小22 KB
  • 时间2019-07-24