基本类型参数传递的是值的副本,形参与实参独立存储于不同栈帧,修改形参不影响实参原始值,如x=5传入方法后改为100,外部x仍为5。

基本数据类型作为方法参数传递时,传的是值的副本,不是原始变量本身。
本质是数值拷贝
像 int、double、boolean、char 这类基本类型,变量里只存一个具体数值,不涉及内存地址。调用方法时,JVM 会在方法栈帧中为形参新开一块内存,把实参当前的值原样复制过去。
- 形参和实参在不同栈帧里,彼此完全独立
- 修改形参,只改这个副本,不影响调用方的原始变量
- 方法执行完,形参连同它的值一起被销毁
名字相同也不代表共享
即使形参和实参都叫 a,它们仍是两个独立变量。变量名只是标识符,关键在于 JVM 给它们分配了不同的栈空间。名称重复不会导致值联动或覆盖。
没有地址、没有引用、没法反向影响
基本类型不保存任何地址信息,Java 语言层面也不支持对它取地址或间接访问。所以:
- 不存在“传地址”“传引用”或“传指针”的说法
- 你无法通过形参去修改另一个基本类型变量的值
- 方法内操作永远作用于副本,调用方的原始值始终不变
典型表现就是“改不动原值”
比如:int x = 5; 传进方法后,在方法里把形参改成 100,x 在外部打印出来还是 5。这不是 bug,而是 Java 的设计机制——你操作的从来就不是那个 x,而是它的独立副本。










