java实参将数据传递给形参的两种形式
/**
* java实参将数据传递给形参的两种形式
* 1,按值传递
* 2,按引用传递
*
* 当参数是基本数据类型时,数据不占用堆内存,按值传递
* 当参数是引用类型时,数据占用堆内存,按引用传递
*/
public class Test27 {
public static void main(String[] args) {
//按值传递
/**
* 实际传递给形参的数据是值,内存上形参和实参是不同的,是相互独立的,修改形参不会对实参产生影响
*/
int a = 10;
change1(a);
System.out.println(a);
//按引用传递
/**
* 实参传递给形参的不是真是的数据地址,是数据所在地址,是引用的堆内存中的地址
* 形参和实参指向的是内存中的同一个数据
* 修改形参会对实参产生影响,形参和实参事实上是同一个数据
*/
int[] b = {1,2,3};
change2(b);
System.out.println(b[0]);
}
public static void change1(int a){
a = 100;
}
public static void change2(int[] b){
b[0] = 100;
}
}
执行代码如下: