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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Eales0 中级黑马   /  2016-3-27 00:16  /  647 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1              int num1 = 1;
2                int num2 = num1;
3                num1++;
4                System.out.println(num1==num2);

结果: false

第一句num1 存放1的地址值,第二句把num1的地址值赋值给了num2,两个变量存放了相同地址值,指向了同一个实体。
为什么输出结果却是false?输出num2结果还是1。

2 个回复

倒序浏览
num1里面存的是1,不是地址值.基本数据类型传递的值,就是具体的数值,字符等.这里面参与运算的都是数值
int num1 = 1
int num2 = num1
这两句话是给变量num1赋值为1,不是把1的地址值传递给num1
num2 = num1是吧num1里面存储的1赋值给num2
然后对num1++,num1就变成了2
后面输出的num1 == num2 肯定就是false了

评分

参与人数 1黑马币 +2 收起 理由
Eales0 + 2 赞一个!

查看全部评分

回复 使用道具 举报
Laopozini123 发表于 2016-3-27 08:27
num1里面存的是1,不是地址值.基本数据类型传递的值,就是具体的数值,字符等.这里面参与运算的都是数值
int n ...

原来,我给弄混了,多谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马