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;}
}
执行代码如下: