包装类不能直接用“==”比较,类比较直接用equels,也可以.longValue(),来比较
而值得注意的是128L以内的Long型是可以直接用“==”去比较的,猜测是Long包装类 做了常量处理,需看源码,待修改。
后续补充:
Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间的值,一共256个元素。
如果仅仅是缓存下来而不去使用那么就没有任何意义。valueOf(long l)就是使缓存派上用场的方法,
它会判断传入的参数是否在-128-127之间,如果是则直接从缓存中返回对应的引用,否则新创建一个Long的实例。
静态内部类:
-128~127内的赋值会调用valueOf(),直接使用缓存好的常量,==对比的也是这个
Long自己重写的equals()