问答详情
源自:2-4 Java 中的 String 类常用方法 Ⅱ

foreach循环后的比较问题

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


提问者:落叶萧萧online 2017-03-17 17:53

个回答

  • 慕粉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