foreach循环后的比较问题

来源:2-4 Java 中的 String 类常用方法 Ⅱ

落叶萧萧online

2017-03-17 17:53

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


写回答 关注

2回答

  • 慕粉3606918
    2017-03-17 18:13:42

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

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

  • 夏析
    2017-03-17 18:06:31

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

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

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

    落叶萧萧on...

    这个是2-4的一种简便答案啊, b数组中的每一个元素遍历输出,和a做比较。。。。输出结果是对的,所以想问问

    2017-03-19 21:52:22

    共 1 条回复 >

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题