java中基本数据类型方法传参始终是值传递:实参将自身数值完整复制给形参,两者内存独立,修改形参不影响实参。

Java 中基本数据类型在方法传值时,**始终是值传递**:实参把自身存储的数值完整复制一份给形参,两者在内存中完全独立。
形参只是副本,修改不影响实参
基本类型(如 int、char、boolean、double 等)变量直接存值。调用方法时,JVM 在栈上为形参新开辟一块空间,并把实参的值“拷贝过去”。此后对形参的任何操作,都只作用于这个新空间里的副本。
- 例如:int a = 5; 传入方法后,形参 x 得到的是 5 的拷贝,不是 a 本身
- 在方法内执行 x = 10,只改了副本的值,a 仍为 5
- 即使交换、累加、重赋值,都不会回写到原始变量
内存层面:两个独立的栈空间
实参和形参各自占用不同的栈帧位置,彼此地址不同、互不干扰:
- main 方法中的变量(如 int x = 10;)存在自己的栈槽
- 被调方法的形参(如 void f(int y))也在自己的栈帧里分配新槽
- 传参动作本质是:把 x 槽里的值读出来,再写进 y 槽 —— 不涉及地址共享
常见误区澄清
有人误以为“方法里改了参数,外面也该变”,这是混淆了引用类型的行为。对基本类型来说:
- 不存在“指向对象”或“地址共享”的概念
- 没有“传引用”“传地址”这回事,Java 从不为基本类型做引用传递
- 所谓“传值”,就是传那个实实在在的数字、字符或真假值本身
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











