为了账号安全,请及时绑定邮箱和手机立即绑定

foreach循环后的比较问题

比较好奇,foreach循环后面
byte[] b=s.getBytes();
for(byte bt:b){
   if(bt=='a'){
   num++;
   }
   
   这儿的if后面这两个比较为什么是相等的。。指向相同的地址吗 还是。。但是‘a’又是单引号,比较的是基本类型,虽然是相互转换的,感觉类型不同,意思是值相同吗?


正在回答

2 回答

对于基本数据类型(int, double, byte,......),使用“==”比较的是它们的值;

而对于复合数据类型(类)的对象,使用“==”比较的是它们的地址/引用。

0 回复 有任何疑惑可以回复我~

恕我不能懂for为什么要这样写... 

java里 ==比对的是仅仅是 对象

具体详见:http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html

0 回复 有任何疑惑可以回复我~
#1

落叶萧萧online 提问者

这个是2-4的一种简便答案啊, b数组中的每一个元素遍历输出,和a做比较。。。。输出结果是对的,所以想问问
2017-03-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409790    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

foreach循环后的比较问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信