I got a very strange problem when I\'m trying to compare 2 Long variables, they always show false and I can be sure they have the same number value by debugging in Eclipse:<
because == compares reference value, and smaller long values are cached
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l <= 127) { // will cache
return LongCache.cache[(int)l + offset];
}
return new Long(l);
}
so it works for smaller long values
Also See