int的效率和性能比Integer要高。因为int类型的数据直接存储在栈中,不需要进行堆内存的分配和垃圾回收。而Integer类型的数据需要进行堆内存的分配和垃圾回收,效率和性能相对较低。2.3.1 int和Integer的效率和性能比较 由于int是一个原始类型,所以它的操作速度比Integer快。因为在Java虚拟机中,操作原始类型的指令比...
1. 基本类型(值类型)之间无法使用equals比较。 2. equals参数为值类型,则参数会进行自动装箱为包装类型,之后请参见第3点。 3. equals参数为包装类型,则先比较是否为同类型,非同类型直接返回false,同类型再比较值。 示例: new Long(0).equals(0) 为 false,equals参数默认为int类型,装箱为Integer类型,不同类型...
所以,在上述例子中,a和b都指向缓存中的同一个Integer对象,因此a == b的结果为true。 使用equals()方法判断Integer相等性 equals()方法用于比较两个对象的内容是否相等。对于Integer对象来说,equals()方法会比较两个对象的整数值是否相等,而不管它们是否是同一个对象实例。 System.out.println(a.equals(b)); /...
4.5 ==和equals的区别 最后我们再做一个实验,来看看==与equals比较两个Integer对象时有什么不同。从该实验中可以看出,==比较时,较小的两个相同的Integer会返回true,较大的两个相同的Integer会返回false。结合上面给大家的讲解,大家思考一下这是为什么?5. 结论 通过以上的几个核心实验,可以给大家梳理出一...
i1创建一个对象,i2呢,要么从缓存中拿一个,要么new一个,反正和i1是两个对象,所以“==”结果是false,equals因为比较的是intValue的值,所以一样。 好了,int和Integer大致的表情况基本都涉及到了,即使再有其它形式,只要你明白其中的道理,怎么变都不怕。
int是Java的基本数据类型,用于表示整数值,占用4个字节的内存空间。 Integer是int的包装类,属于java.lang包,是引用类型,可以将int值包装成对象。 默认值: int的默认值是0。 Integer的默认值是null,因为它是一个对象。 可空性: int不能为null,因为它是一个基本数据类型。 Integer可以为null,表示没有设置值。
两个Integer比较,是比较内容,永远用equals(此条仅enum例外)两个int比较,只能用==一个是Integer,一...
引用数据类型对比需要用equals()方法对比相等 因Integer存在缓存,在Integer的值不超过-128~127之间==对比为true,若超过则会new一个Integer对象==结果为false; 在比较时可使用(a.intValue==b)来比较, 用Integer和int对比Intege会自动拆箱变成int类型,所以结果就是int类型对比int类型了总结:对象之间的比较不能用==...
public void testEquals() { int int1 = 12; int int2 = 12; Integer integer1 = new Integer(12); Integer integer2 = new Integer(12); Integer integer3 = new Integer(127); Integer a1 = 127; Integer a2 = 127; Integer a = 128; ...
通过翻看jdk源码,你会发现:如果要创建的 Integer 对象的值在 -128 到 127 之间,会从 IntegerCache 类中直接返回,否则才调用 new Integer方法创建。所以只要数值是正的Integer > 127,则会new一个新的对象。 数值 <= 127时会直接从Cache中获取到同一个对象。public static Integer valueOf(int i) { if...