Java 中Long與long引起的bug,代碼中一個隱藏了很長時間有BUG今天找到了。
問題出在了Long比較是否相等引起的,示例如下:
我的本意是判斷md是否在list中,如上所示,md=123456,在list中,但用上面的代碼得到的結果是不在。
個人分析是因為對於Long類,使用==來比較會出問題,因為只有是同一個對象時,等號才會成立。
解決方法為將md聲明為long,這樣it.next()與md比較時,Long會轉換為long。
Java並發編程:Java內存模型
【Simple Java】Java內存洩露簡述
Java多線程編程——Java內存模型
Java帶有運算符的字符串轉換為Long型
Java 簡單的Java Socket程序
Java Byte和各數據類型(short,int,long,float,double)之間的轉換
Java接口和Java抽象類
Java內隱類(Java Inner Class)