首先要明白,修改一个对象,可以是 修改对象的属性值,也能使建立新的引用(指向另一个对象)两种情况

值传递

在函数调用的过程中,参数是 变量的副本,就是复制出来的一个对象,函数中无论怎么修改和原来的变量都没关系

引用传递

在函数调用的过程中,参数是 变量的引用,函数中如果更改,变量本身也会同步修改

共享对象传递

在函数调用的过程中,参数是 变量引用的副本,和变量指向同一个对象,a(实参) ==> obj,b(形参) ==> obj

情况1:如果修改对象属性,a 和 b 都会修改;情况2:如果修改引用(比如 b 指向 obj2),这种情况 a 是不变的,还是指向 obj

结论

共享对象传递是值传递的特殊情况,流程大体一样,只不过一个是复制值,一个是复制引用

java 是共享对象传递没毛病,java 是值传递也没毛病,但是 java 不是引用传递

最新文章

  1. 为什么npm install在安装时会多安装很多依赖包
  2. [转]在 Web 项目中应用 Apache Shiro
  3. eclipse导入PIL报错
  4. Lambda表达式演变
  5. [GraphQL] Use GraphQL's List Type for Collections
  6. Nodejs异步
  7. SQL基础教程读书笔记-1
  8. css之隐藏内容的方法
  9. 毕业回馈--89C51keil工程的创建
  10. 集训队日常训练20181201 C 1003 : 种类数
  11. mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
  12. Angular4学习笔记-目录汇总
  13. http stream
  14. 20172302 《Java软件结构与数据结构》第七周学习总结
  15. 【转】Java学习---算法那些事
  16. 【jsp】Servlet与jsp之间的传值
  17. 使用js栈stack类的实现
  18. [webpack]path、publicPath、--content-base 理解
  19. 解决Html.CheckBoxFor中”无法将类型 bool 隐式转换为 bool。存在一个显式转换..."的方法
  20. 字典树应用 - poj1002

热门文章

  1. c# message (转)
  2. 国内centerOs6的yum源都不维护了
  3. sys&faker&jsonpath模块、异常处理、多线程、多进程
  4. sxt_(011_014)_显示添加书籍
  5. sxt_(003_007)_tomcat
  6. 【转载】rename。给文件批量改名的python脚本
  7. 使用 EMQX Cloud 桥接数据到 GCP Pub/Sub
  8. pip python的包成功,但是import的时候报错
  9. JupyterNotebook开发介绍
  10. macOS NSView改变frame后会出现黑色残留,应付的办法是不在drawRect上修改重新initWithFrame一下就行