java中基本数据类型参数传递是值传递,即传递变量值的副本,形参和实参位于不同栈帧、相互独立,修改形参不影响实参原始值。

Java中基本数据类型作为方法参数传递时,传递的是该变量当前值的副本。
本质是数值拷贝
基本类型(如int、double、boolean、char等)变量本身只存一个具体值,不涉及内存地址。当它被当作实参传入方法时,JVM会在方法的栈帧中为形参分配一块**全新的内存空间**,并将实参的值原样复制过去。这个副本和原始变量彼此独立,位于不同栈帧中。
- 修改形参的值,只影响方法内部的副本
- 方法结束后,形参变量连同其值一起销毁
- 原始变量在调用方栈帧中保持不变
和变量名无关
即使形参和实参名字相同(比如都叫a),它们仍是两个独立变量。名字只是标识符,关键在于JVM为它们各自分配了不同的栈空间。名称重复不会造成任何共享或覆盖。
不是地址,也不可能是引用
基本类型没有“引用”概念,它不指向堆中某个对象,也不保存任何地址信息。因此不存在“传地址”“传引用”或“传指针”的可能——Java语言层面根本不允许对基本类型取地址或间接访问。
- 你无法通过int a去修改另一个int b的值
- 也没有办法让方法内操作“反向影响”调用方的变量
- 这种不可变性由语言设计决定,不是编码技巧能绕过的
典型表现就是“改不动原值”
例如:int x = 5; 传进方法后,在方法里把形参改成100,x在外部打印出来还是5。这不是bug,而是机制使然——你操作的从来就不是那个x,而是它的孪生副本。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











