面试题:
在调用方法的时候,若要使方法改变参数的值,可以()
A.用基本数据类型作为参数
B.用对象作为参数
C.以上都对
D.以上都不对
public class Test {
public static void main(String[] args) {
int a = 5;
int[] arr = {1, 2, 3};
int b = changeInt(a);
System.out.println(a);//a还是原来的参数,如果调用方法后用a来接收,那么a肯定是10的
System.out.println(b);
int[] ints = changeArr(arr);
for (int anInt : ints) {
System.out.print(anInt+",");
}
System.out.println();
System.out.println("------------");
for (int i : arr) {
System.out.print(i+",");
}
}
public static int changeInt(int a){
a=2*a;
return a;
}
public static int[] changeArr(int[] arr){
for(int i=0; i<arr.length; i++){
arr[i]=2*arr[i];
}
return arr;
}
}
输出的结果
从结果就可以看出来,基本数据类型,传入方法后,其值并不会改变,通过对象的引用传入的数据会把参数的值也改掉