6.下列正确的有( )
  A. call by value       不会改变实际参数的数值
  B. call by reference    能改变实际参数的参考地址
  C. call by reference不能改变实际参数的参考地址
  D. call by reference   能改变实际参数的内容

  答案:ACD

Java中参数的传递有两种,一种是按值传递(传递的是具体的值,如基础数据类型),另一种是按引用传递(传递的是对象的引用,即对象的存储地址)。

main()
{//按值传递int val = 20 ;print(val) ; //打印的是20setVal(val); print(val) ; //打印的还是20//按引用传递StringBuffer val = new StringBuffer("234");print(val.toString()) ;//打印的是234  setStringVal(val) ;print(val.toString()) ;//打印的是234  changeStringVal(val);print(val.toString()) ;//打印的是234123
}void setVal(int val)
{val = 10 ;
}
void setStringVal(StringBuffer val)
{val =  new StringBuffer("345");
}
void changeStringVal(StringBuffer val)
{val = val.append("123") ;
}

从上面的代码可以了解:
1.按值传递时在调用的方法中,参数只是实际参数的一个拷贝。所以不管参数在方法里面如何修改都不会改变原来参数值。也就是说val的值一直保持不变。

2.按引用传递时,会产生一份新的引用(不妨叫做y)。此时x和y指向了同一个对象。

例子中:当调用setStringVal方法时,引用拷贝即y指向了另一个对象("345")此时并不会改变x引用的值,所以打印的是234。

例子中:当调用changeStringVal时,y引用改变了对象的实际的值,此时x和y指向的还是同一个对象。所以打印的是234123。

从上面的分析我们可以得出以下结论:
1.call by value不会改变实际参数的数值。
2.call by reference不能改变实际参数的参考地址。
3.call by reference能改变实际参数的内容。

call by value 和 call by reference相关推荐

  1. undefined reference to 'pthread_create'问题解决(转)

    undefined reference to 'pthread_create' undefined reference to 'pthread_join' 问题原因:     pthread 库不是 ...

  2. 《Java: The Complete Reference》等书读书笔记

    春节期间读了下<Java: The Complete Reference>发现这本书写的深入浅出,我想一个问题,书中很多内容我们也知道,但是为什么我们就写不出这样一本书,这么全面,这么系统 ...

  3. undefined reference to `libiconv_open 无法编译PHP libiconv

    原文:http://hi.baidu.com/ostech/blog/item/a63f9b0dabed1ae7ab6457d0.html ./configure --with-mysql=/back ...

  4. 【Qt】error: undefined reference to `vtable for MainWindow‘

    1.问题描述 在写一个demo时,想尽量简单,就把MainWindow类的定义和实现都写在main.cpp中,结果编译时报错: main.cpp:-1: error: undefined refere ...

  5. 【Qt】报错error: undefined reference to `vtable for的解决方法

    1.问题描述 编译Qt程序时,在某个类构造函数定义处报错: error: undefined reference to `vtable for 2.原因分析 导致错误信息的原因是:子类没有实现父类的纯 ...

  6. 【ffmpeg】编译时报错:error: undefined reference to `av...

    1.问题描述 昨天使用ffmpeg库编译demo一切正常,今天再次链接ffmpeg库时报了一堆错误: error: undefined reference to `av_frame_alloc()' ...

  7. undefined reference to android log print,undefined reference to '__android_log_print'

    场景:undefined reference to `android_log_print' undefined reference to `__android_log_print' 原因:没有加入支持 ...

  8. C++中Reference与指针(Pointer)的使用对比

    了解引用reference与指针pointer到底有什么不同可以帮助你决定什么时候该用reference,什么时候该用pointer. 在C++ 中,reference在很多方面与指针(pointer ...

  9. c++中的对象引用(object reference)与对象指针的区别

    2019独角兽企业重金招聘Python工程师标准>>> ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用是某块内存的别名. ★ 区别: 1. 指 ...

  10. VS2008中Web Reference和Service Reference的区别

    很早就发现在vs2008中应用web service有两种方式,即Add Web Reference和Add Service Reference,但是一直不是很清楚这两者有什么区别.趁着今天有空实验一 ...

最新文章

  1. 学习动态性能表(3)--v$sqlv$sql_plan
  2. 最新技术前沿与产业风向标来了,百度研究院发布2021年十大趋势
  3. 数据结构:循环链表解决约瑟夫问题
  4. TensorFlow深度学习实战---循环神经网络
  5. c char*转int_C语言中的char类型也有signed和unsigned?字符也有正负之分吗?
  6. C++ throw:抛出自己的异常
  7. 计算机在科技英语翻译中起的作用,浅谈科技英语翻译中英语词语的正确理解与表达...
  8. 小程序 bindtouchmove 使用拖动按钮 页面跟着滑动并拖动卡顿感 问题
  9. npm run report,打包,包资源 ,vue大小,vue资源大小
  10. SpringBoot : BeanFactory和FactoryBean的区别
  11. stmcubemx 脉冲计数_STM32CubeMX:ETR外部脉冲计数器
  12. android 分页列表,android获取相册列表并分页获取
  13. php ccontroller,FineCMS controllers\ApiController.php 函数downAction 任意文件下载
  14. 显示隐藏dataGrid控件的标题栏,改变标题栏高度.
  15. Mysql5.7+ 出现Field * doesn‘t have a default value解决办法
  16. java计算机毕业设计网上鲜花交易平台源代码+数据库+系统+lw文档
  17. summernote 添加emoji表情包
  18. maven(视频学习)
  19. 论文阅读(边缘计算人工智能工业互联网)
  20. MYSQL中如何创建存储过程和存储函数(上篇)

热门文章

  1. 万字长文讲清楚4D毫米波雷达
  2. houseoforange_hitcon_2016(House of orange, unsorted bin attack,FSOP)
  3. linux下查看进程+杀死进程方法大全
  4. 近十年计算机病毒侵害柱形图,全国2002年10月自学考试计算机应用基础真题
  5. php去除换行(回车换行)的三种方法
  6. 微信小程序发现的一些小问题以及解决方案集合以及注意点
  7. Centos服务器java环境初始化搭建
  8. 2015百度之星初赛(1)1006 旋转卡壳
  9. GICv3软件overview手册之GICv3基本功能(1)
  10. 制作AE(ArcGIS Engine 打包)开发的应用程序的安装包