黑马程序员技术交流社区

标题: 关于java引用数据类型和基本数据类型值传递问题 [打印本页]

作者: YHH    时间: 2016-4-17 00:35
标题: 关于java引用数据类型和基本数据类型值传递问题
java在引用数据类型和引用数据类型值传递的规律是:
基本数据类型不改变原值,引用数据类型改变原值.具体是:
在main方法中我们声明
int a = 10; int b = 20;
我们将a和b作为实际参数传入方法
public static void swap(int a, int b) {//a b 互换
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}
但是调用方法后main方法的a b 值不变,还是 a = 10, b = 20;


但是我们如果用引用数据类型变量作为实际参数传进去一个方法里,在方法里修改了变量,原值是会改变的;

请问代码的原理是什么?
作者: 泪雨星空    时间: 2016-4-17 00:59
基本数据类型按值传递,相当于复制了一份过去,引用数据按地址传递,两个地方根据地址使用同一份数据,如被更改,则原有数据也会更改,例如数组,在传递数组时,如果接收到数组之后,对其修改,那么原来的数组也会同时修改,因为它们指向同一个地址!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2