Integer的equals和==
时间:2021-04-15 12:17:29
收藏:0
阅读:0
众所周知
对于基本类型而言,equals和没有区别,但对于引用类型 equals比较的是内容(类型+值),比较的是地址
一开始我以为像Integer这种包装类由于是引用类型,应该用equals比较 直到...
Integer a=20;
Integer b=20;
System.out.println(a==b);
结果为true!
难道 Integer和String一样,也有个常量池吗?
于是
Integer a=new Integer(20);
Integer b=new Integer(20);
System.out.println(a == b);
果然结果为false!
原来Integer有个缓存的原理 如果值为[-127,128]之间 则不会创建对象,超过这个范围则会创建对象
Integer a=200;
Integer b=200;
System.out.println(a==b);
结果为false!
所以 以后在不确定Integer的值时老老实实用equals吧!
评论(0)