java参数有值类型和引用类型两种。所以java参数的传值也就从这两个方面分析。
从内存模型来说参数传递更为直观一些,这里涉及到两种类型的内存:栈内存(stack)和堆内存(heap)。
 
基本类型作为参数传递时,传递的是这个值的拷贝。无论你怎么改变这个拷贝,原值是不会改变的。
引用类型作为参数传递时,传递的是引用地址。所以在改变引用类型的值时,原值会改变。(String类型特殊,单独说)

基本类型作为参数传递

基本类型作为参数传递时,传递的是这个值的拷贝。无论你怎么改变这个拷贝,原值是不会改变的。

代码如下:

 1 public class ParameterTransfer {
 2         public static void main(String[] args) {
 3             int num = 30;
 4             System.out.println("调用add方法前num=" + num);
 5             add(num);
 6             System.out.println("调用add方法后num=" + num);
 7         }
 8 
 9         public static void add(int param) {
10             param = 100;
11         }
12     }
View Code

相关文章: