前几天推送过一篇关于Integer比较大小的文章,具体可以查看
《【细节】Integer细节比较》,有朋友提到说,Integer是有小数据缓存的机制的,那么第一个是否应该是true呢?
回归下第一个:
1 |
Integer num1 = new Integer( 100 ); |
2 |
Integer num2 = new Integer( 100 ); |
3 |
System.out.println(num1 == num2); |
上篇提到说,这个的运行结果是false,原因在上篇文章中有解释,但是,对于Integer的小数据缓存是怎么一回事?难道这两个是矛盾的吗?
PS:灰常感谢朋友的提出Integer缓存问题(之前不知道有这个机制)瞬间涨知识了。
言归正传,
那么Integer缓存是怎么回事呢?
还是用代码的方式来解决问题吧,下面是代码,同样,你觉得输出结果会是什么?
01 |
public static void main(String[] args) {
|
03 |
Integer num1 = new Integer( 100 ); |
04 |
Integer num2 = new Integer( 100 ); |
05 |
System.out.println( "num1==num2 " + (num1 == num2)); |