int的效率和性能比Integer要高。因为int类型的数据直接存储在栈中,不需要进行堆内存的分配和垃圾回收。而Integer类型的数据需要进行堆内存的分配和垃圾回收,效率和性能相对较低。2.3.1 int和Integer的效率和性能比较 由于int是一个原始类型,所以它的操作速度比Integer快。因为在Java虚拟机中,操作原始类型的指令比...
所以,在上述例子中,a和b都指向缓存中的同一个Integer对象,因此a == b的结果为true。 使用equals()方法判断Integer相等性 equals()方法用于比较两个对象的内容是否相等。对于Integer对象来说,equals()方法会比较两个对象的整数值是否相等,而不管它们是否是同一个对象实例。 System.out.println(a.equals(b)); /...
1. 基本类型(值类型)之间无法使用equals比较。 2. equals参数为值类型,则参数会进行自动装箱为包装类型,之后请参见第3点。 3. equals参数为包装类型,则先比较是否为同类型,非同类型直接返回false,同类型再比较值。 示例: new Long(0).equals(0) 为 false,equals参数默认为int类型,装箱为Integer类型,不同类型...
Integer int1_1 = Integer.valueOf("1"); Integer int1_2 = Integer.valueOf(1); System.out.println("int1_1 == int1_2: " + (int1_1 == int1_2)); // true System.out.println("int1_1 equals int1_2: " + int1_1.equals(int1_2)); // true 在这里我们创建了两个Integer具有...
所以,给Integer i赋值的大小不同,比较的结果也可能会不同。4.5 ==和equals的区别 最后我们再做一个实验,来看看==与equals比较两个Integer对象时有什么不同。从该实验中可以看出,==比较时,较小的两个相同的Integer会返回true,较大的两个相同的Integer会返回false。结合上面给大家的讲解,大家思考一下这是...
两个Integer比较,是比较内容,永远用equals(此条仅enum例外)两个int比较,只能用==一个是Integer,一...
int是Java的基本数据类型,用于表示整数值,占用4个字节的内存空间。 Integer是int的包装类,属于java.lang包,是引用类型,可以将int值包装成对象。 默认值: int的默认值是0。 Integer的默认值是null,因为它是一个对象。 可空性: int不能为null,因为它是一个基本数据类型。 Integer可以为null,表示没有设置值。
int:使用==进行值比较。 Integer:使用==进行引用比较,使用equals()方法进行值比较。对于两个非new生成的Integer对象,如果它们的值在-128到127之间,则比较结果为true,否则为false。 效率与性能 int:由于int是基本数据类型,它的运算速度通常比Integer快。 Integer:由于需要额外的内存分配和垃圾回收,Integer的性能相对较...
通过翻看jdk源码,你会发现:如果要创建的 Integer 对象的值在 -128 到 127 之间,会从 IntegerCache 类中直接返回,否则才调用 new Integer方法创建。所以只要数值是正的Integer > 127,则会new一个新的对象。 数值 <= 127时会直接从Cache中获取到同一个对象。public static Integer valueOf(int i) { if...
1publicbooleanequals(Object obj) {2if(objinstanceofInteger) {3returnvalue ==((Integer)obj).intValue();4}5returnfalse;6} 可以看到Integer的equals比较,其实比较的就是数值。 值类型之间的比较:int与int 上代码 1intm=0;2inti=0;3ints=0;4System.out.println(m==i);//true5//值类型是没有equals...