/** 基本数据类型的值传递和引用数据类型值传递比较
*
* 引用数据类型值传递传递的是栈中指向堆中对象的地址 ,传递的是地址,改变的是地址中
* 的内容,test方法和main方法指向的是同一个地址中的堆中的内容
* main方法和test方法内容一样
*
* 基本数据类型的值传递,传递的是数值,而变量本身不改变
* @author Administrator
*
*/
// 引用数据类型值传递比较
public class Test1{
public static void testIntA(int[] a){
int num = a[0];
a[0] = a[2];
a[2] = num;
for (int i : a) {
System.out.println(“test:”+i);
}
}
public static void main(String[] args) {
int[] a = new int[]{10,20,30};
testIntA(a); //调用,与下面的调用进行对比
for (int i : a) {
System.out.println(“main:”+i);
}
//testIntA(a); /* 比较 ,取消这个注释上面的调用加上注释形成对比main方法中的值进行对比,先调用方法则main方法中值改变,后调用,则main方法中值不会改变*/
int number = 1;
test(number); //基本数据类型传递的是1这个值,number变量没有改变
System.out.println("main:"+number);
}
//———————————————–
//基本数据类型值传递比较
public static void test(int number) {
number+= 100;
System.out.println(“test:”+number);
}
}
输出结果:
test:30
test:20
test:10
main:30
main:20
main:10
test:101
main:1