Java基本类型方法传参是值传递,传递的是数值副本,形参与实参内存独立,修改形参不影响原始变量,如swap方法无法交换两个int变量的值。

Java 中基本数据类型传给方法时,传递的是值的副本,也就是“值传递”。
基本类型参数是独立副本
比如 int、char、boolean、double 等 8 种基本类型,方法接收到的形参和原始变量在内存中完全无关。你在方法里修改形参,不会影响调用方的原始变量。
- 原始变量存的是具体数值(如 10),传入方法时,JVM 把这个数值复制一份给形参
- 形参和实参各自占用不同栈帧空间,互不干扰
- 常见误区:以为 swap 方法能交换两个 int 变量的值——实际做不到,因为只交换了副本
典型例子说明
下面这段代码运行后,m 和 n 的值不会改变:
public void swap(int m, int n) {
int temp = m;
m = n;
n = temp;
}
// 调用处:
int m = 10, n = 20;
swap(m, n); // 调用后 m 还是 10,n 还是 20
为什么不能通过方法修改原始值
因为基本类型没有“地址”或“引用”的概念,它不指向堆内存中的对象。它的值直接存在栈上,传参就是把那个栈上的数拷贝过去。
立即学习“Java免费学习笔记(深入)”;
- 你改形参,等于改一张“复印件”,原件完好无损
- 想真正交换或更新原始值,得靠返回值、包装类(如 AtomicInteger)、或者用数组/容器包一层


















