基本数据类型的值传递,不改变原值,因为调用完以后就会弹栈,局部变量会消失,而引用数据类型的值传递,改变原值,因为虽然用完方法弹栈,但是可以通过地址访问堆内的数组对象。
java中参数传递是传值还是传址。其中一种见解是传值,即使是地址也是数值。
1,基本数据类型传递执行如下代码:
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;
int b = 20;
System.out.println(“a=”+a+",b="+b);
change(a,b);
System.out.println(“a=”+a+",b="+b);
}
public static void change(int a,int b) {
a=b;
b=a+b;
System.out.println(“a=”+a+",b="+b);
}
}
运行结果如下:
2,引用数据类型传递代码如下:
public static void main(String[] args) {
int[] arr = {0,1,2,3,4,5,6};
change(arr);
System.out.println(arr[2]);
}
public static void change(int[] arr) {
for(int i=0;i<arr.length;i++)
if(arr[i]%2==0) {
arr[i]*=2;
}
}
结果截图如下: