您的位置:首页 > 其它

方法参数是基本类型和引用类型的区别

2017-08-25 22:29 609 查看
1 方法参数是基本类型时,传递的是值。

2 方法参数是引用类型时,传递的是内存地址值

public class MethodDemo_3{
public static void main(String[] args){
/*int a = 1;
int b = 2;
change(a,b);
System.out.println(a); //1
System.out.println(b); // 2
*/
int[] arr = {1,2,3,4};
System.out.println(arr[2]); // 3
change(arr);
System.out.println(arr[2]); //  100
}

public static void change(int[] arr){
arr[2] = 100;
}

public static void change(int a,int b){
a = a+b;
b = b+a;
}
}


当参数是基本类型时,在调用方法时将值传递到方法中,运行方法,运行结束方法退出,对原本main中定义的变量没有任何操作(没有return),所以注释处输出仍为1和2。



当参数是引用类型时,定义数组时,在堆内存中存储了数组的数据,返回这组数据的地址给了arr,然后在调用方法时,传递的也是这个地址。在chang方法中,同样也是根据这个地址找到数组的信息,然后改变了这个数据的【2】数据,所以之后main方法输出时,输出的是改变了之后的数组。



也就是说 ,当参数是基本类型时,方法传的只是值,实际上main 里的a和chang方法里的a是不同的两个东西,如果方法不返回值,change里不管怎么改变,与main无关。

而引用类型时,两个方法通过同一个地址,使用的是同一个堆内存里的数组,是同一个东西,所以change方法里面改变了这个数组的之后,main再调用也是改变之后的数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  方法-参数
相关文章推荐