Java基础之:值传递与引用传递
什么是值传递和引用传递
-
值传递: 在java中,对于基本数据类型(byte, short ,int ,long, float ,double ,char ,boolean), 在进行传递 (赋值 , 方法传参), 进行的是 值传递( 即:拷贝一份数据), 两份数据是独立的.
-
二者有什么区别
-
值传递 是 两个变量进行值传递时,因为是拷贝了一份独立数据,因此一个变量的修改,不会影响到另外一个 变量,比如 int n1 = 2; int n2 = n1; 这时 n1的变化,不会影响到 n2
-
引用传递 是 两个变量进行引用传递时, 因为传递的是引用(地址), 会让两个引用, 指向的是同一份数据空间, 因此,如果一个引用去修改它指向的数据, 则会影响到另一个引用指向的数据, 比如 Person p1 = new Person(); Person p2 = p1; p2.name = "tom"; 那么 p1.name 就会被修改成 tom
-
注意 一个引用的指向发生变化,不会影响到另外一个引用,比如:
Person p1 = new Person();
Person p2 = p1; p2 = null;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用