foreach循環(huán)后的比較問題
比較好奇,foreach循環(huán)后面 byte[]?b=s.getBytes(); for(byte?bt:b){ ???if(bt=='a'){ ???num++; ???} ??? ???這兒的if后面這兩個比較為什么是相等的。。指向相同的地址嗎?還是。。但是‘a(chǎn)’又是單引號,比較的是基本類型,雖然是相互轉(zhuǎn)換的,感覺類型不同,意思是值相同嗎?
比較好奇,foreach循環(huán)后面 byte[]?b=s.getBytes(); for(byte?bt:b){ ???if(bt=='a'){ ???num++; ???} ??? ???這兒的if后面這兩個比較為什么是相等的。。指向相同的地址嗎?還是。。但是‘a(chǎn)’又是單引號,比較的是基本類型,雖然是相互轉(zhuǎn)換的,感覺類型不同,意思是值相同嗎?
2017-03-17
舉報
2017-03-17
對于基本數(shù)據(jù)類型(int, double, byte,......),使用“==”比較的是它們的值;
而對于復(fù)合數(shù)據(jù)類型(類)的對象,使用“==”比較的是它們的地址/引用。
2017-03-17
恕我不能懂for為什么要這樣寫...?
java里 ==比對的是僅僅是 對象
具體詳見:http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html