A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

YHH

中级黑马

  • 黑马币:-81

  • 帖子:82

  • 精华:0

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;


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

请问代码的原理是什么?

1 个回复

倒序浏览
基本数据类型按值传递,相当于复制了一份过去,引用数据按地址传递,两个地方根据地址使用同一份数据,如被更改,则原有数据也会更改,例如数组,在传递数组时,如果接收到数组之后,对其修改,那么原来的数组也会同时修改,因为它们指向同一个地址!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马