值传递与引用传递
值传递
- 传递对象的一个副本,即使副本被改变,也不会影响源对象,因为值传递的时候,实际上是将实参的值复制一份给形参;
- 原始类型数据(整形、浮点型、字符型、布尔型)传递是值传递
package com.oop.Demo01; public class Demo04 { public static void main(String[] args) { //值传递 int a = 1; System.out.println(a);//1 Demo04.change(a); System.out.println(a);//1 } public static void change(int a) { a = 10; } }
注:int数据类型使用的值传递,所以调用change方法没有返回值的话并不会改变原来a的值
引用传递
- 传递的并不是实际的对象,而是对象的引用,外部对引用对象的改变也会反映到源对象上,因为引用传递的时候,实际上是将实参的地址值复制一份给形参。
- 对象传递(数组、类、接口)是引用传递
package com.oop.Demo01; public class Demo05 { public static void main(String[] args) { //引用传递 Person person = new Person(); System.out.println(person.name);//null Demo05.change(person); System.out.println(person.name);//helloman } public static void change(Person person) { person.name = "helloman"; } } //定义一个类,有名字 class Person { String name; }
注:String类型使用的是引用传递,将name指向的值在内存中作出了改变,所以change方法后类的名字发生了改变
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南