Java基础之:值传递与引用传递

Java基础之:值传递与引用传递

什么是值传递和引用传递

  1. 值传递: 在java中,对于基本数据类型(byte, short ,int ,long, float ,double ,char ,boolean), 在进行传递 (赋值 , 方法传参), 进行的是 值传递( 即:拷贝一份数据), 两份数据是独立的.

  2. 引用传递: 在java中,对于引用数据类型(对象,数组), 在进行传递时(赋值, 方法传参), 进行的是引用传递 (即:传递的是一个引用(地址), 不会拷贝一份引用指向的数据) , 这就是引用传递

二者有什么区别

  1. 值传递 是 两个变量进行值传递时,因为是拷贝了一份独立数据,因此一个变量的修改,不会影响到另外一个 变量,比如 int n1 = 2; int n2 = n1; 这时 n1的变化,不会影响到 n2

  2. 引用传递 是 两个变量进行引用传递时, 因为传递的是引用(地址), 会让两个引用, 指向的是同一份数据空间, 因此,如果一个引用去修改它指向的数据, 则会影响到另一个引用指向的数据, 比如 Person p1 = new Person(); Person p2 = p1; p2.name = "tom"; 那么 p1.name 就会被修改成 tom

  3. 注意 一个引用的指向发生变化,不会影响到另外一个引用,比如:

    Person p1 = new Person();

    Person p2 = p1; p2 = null;

    对 p1 没有影响,仅将p2在栈空间中的内容置为null。

posted @   奋斗的小范同学  阅读(318)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 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 构建精确任务处理应用
点击右上角即可分享
微信分享提示