博客
关于我
Java的值传递和引用传递
阅读量:723 次
发布时间:2019-03-17

本文共 1627 字,大约阅读时间需要 5 分钟。

Java值传递与引用传递详解

一、代码示例

以下是两种主要的编程语言中的代码示例:

1. User类

public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

2. 测试类

public class Demo1 {
public static void main(String[] args) {
User user = new User();
List
list = new ArrayList<>();
list.add(user);
user.setName("李四");
System.out.println(list.get(0).getName());
}
}

二、值传递与引用传递

1. 值传递

值传递是指方法调用时,传递的参数是按值的拷贝传递。具体实现方式是将实际参数的值复制到方法中的形式参数中,两者之间不会有任何关联。

2. 引用传递

引用传递是指方法调用时,传递的参数是按引用的方式传递。具体实现方式是将实际参数的内存地址传递给方法中的形式参数参数,两者指向同一个内存空间。

三、值传递的特点

  • 传递的是值的拷贝:传递后,原参数与方法参数之间互不影响。
  • 方法修改不会影响原参数:如下代码所示:
public class TempTest {
private void test1(int a) {
a = 5;
System.out.println("test1方法中的a=" + a);
}
public static void main(String[] args) {
TempTest t = new TempTest();
int a = 3;
t.test1(a);
System.out.println("main方法中的a=" + a);
}
}

运行结果:

test1方法中的a=5
main方法中的a=3

四、引用传递的特点

  • 传递的是引用的地址:传递后,原参数与方法参数指向同一个内存空间。
  • 方法修改会影响原参数:如下代码所示:
public class TempTest {
private void test1(A a) {
a.age = 20;
System.out.println("test1方法中的age=" + a.age);
}
public static void main(String[] args) {
TempTest t = new TempTest();
A a = new A();
a.age = 10;
t.test1(a);
System.out.println("main方法中的age=" + a.age);
}
}

运行结果:

test1方法中的age=20
main方法中的age=20

五、总结

在Java中,参数传递都是按值传递。对于基本数据类型和String类型,传递的是值的拷贝;对于对象类型,传递的是引用的地址。理解这一点是掌握Java核心概念的关键。

通过以上代码示例和解释,我们可以清楚地看到值传递和引用传递的区别。希望这篇文章能帮助你更好地理解Java的参数传递机制。

转载地址:http://egpez.baihongyu.com/

你可能感兴趣的文章
python 存入数据库bigint_python基础_MySQL的bigint类型
查看>>
python 学习 面向对象编程
查看>>
Python 学习小结
查看>>
Python 学习日记第三篇 -- 字典
查看>>
Python 学习笔记(一)Data type
查看>>
python 安装 easy_install 和 pip 流程
查看>>
python 安装echarts
查看>>
python 安装opencv及问题解决
查看>>
Python 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
查看>>
Python 安装避坑指南:从入门到进阶
查看>>
Python 安装配置详解
查看>>
python 实现儿童算术游戏
查看>>
python 实现字符串转整型
查看>>
Python 实现定时任务的八种方案!
查看>>
python 实现将RGBA 转换为RGB
查看>>
Python 实现自动化测试 dubbo 协议接口
查看>>
python编程基础之十六
查看>>
python字符串input输入_Python input()函数:获取用户输入的字符串
查看>>
python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
查看>>
Python 对mysql数据库的操作
查看>>