java 是值传递还是引用传递
2024-09-22 17:11:10
首先要明白,修改一个对象,可以是 修改对象的属性值,也能使建立新的引用(指向另一个对象)两种情况
值传递
在函数调用的过程中,参数是 变量的副本,就是复制出来的一个对象,函数中无论怎么修改和原来的变量都没关系
引用传递
在函数调用的过程中,参数是 变量的引用,函数中如果更改,变量本身也会同步修改
共享对象传递
在函数调用的过程中,参数是 变量引用的副本,和变量指向同一个对象,a(实参) ==> obj,b(形参) ==> obj
情况1:如果修改对象属性,a 和 b 都会修改;情况2:如果修改引用(比如 b 指向 obj2),这种情况 a 是不变的,还是指向 obj
结论
共享对象传递是值传递的特殊情况,流程大体一样,只不过一个是复制值,一个是复制引用
java 是共享对象传递没毛病,java 是值传递也没毛病,但是 java 不是引用传递
最新文章
- 为什么npm install在安装时会多安装很多依赖包
- [转]在 Web 项目中应用 Apache Shiro
- eclipse导入PIL报错
- Lambda表达式演变
- [GraphQL] Use GraphQL's List Type for Collections
- Nodejs异步
- SQL基础教程读书笔记-1
- css之隐藏内容的方法
- 毕业回馈--89C51keil工程的创建
- 集训队日常训练20181201 C 1003 : 种类数
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
- Angular4学习笔记-目录汇总
- http stream
- 20172302 《Java软件结构与数据结构》第七周学习总结
- 【转】Java学习---算法那些事
- 【jsp】Servlet与jsp之间的传值
- 使用js栈stack类的实现
- [webpack]path、publicPath、--content-base 理解
- 解决Html.CheckBoxFor中”无法将类型 bool 隐式转换为 bool。存在一个显式转换...";的方法
- 字典树应用 - poj1002
热门文章
- c# message (转)
- 国内centerOs6的yum源都不维护了
- sys&;faker&;jsonpath模块、异常处理、多线程、多进程
- sxt_(011_014)_显示添加书籍
- sxt_(003_007)_tomcat
- 【转载】rename。给文件批量改名的python脚本
- 使用 EMQX Cloud 桥接数据到 GCP Pub/Sub
- pip python的包成功,但是import的时候报错
- JupyterNotebook开发介绍
- macOS NSView改变frame后会出现黑色残留,应付的办法是不在drawRect上修改重新initWithFrame一下就行