一、equals函数介绍
在Java中,equals函数用于比较两个对象是否相等,通常用于比较自定义对象。在Integer类中,equals函数比较的是两个整型数是否相等。
二、equals函数源码解析
public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }
我们可以发现,equals函数首先判断传入的对象是否是一个Integer对象,如果不是,则返回false;如果是,则将其转化为int类型,然后比较两个整型数是否相等。
三、使用示例
Integer a = new Integer(5); Integer b = new Integer(5); System.out.println(a.equals(b)); // 输出true Integer c = 5; Integer d = 5; System.out.println(c.equals(d)); // 输出true Integer e = 129; Integer f = 129; System.out.println(e.equals(f)); // 输出true,因为129在缓存范围内
这里我们可以看到,equals函数可以比较两个Integer对象是否相等,也可以比较一个Integer对象和一个int类型的数值是否相等。此外,Java中在-128~127范围内的整型数值会被缓存,所以当两个整型数值在这个范围内相等时,它们对应的Integer对象也会相等。
四、equals函数注意事项
由于equals函数比较的是两个整型数值是否相等,所以在进行比较时需要注意类型转化和空指针问题。例如:
Integer g = null; Integer h = 5; System.out.println(g == h); // 报错,空指针异常 System.out.println(g.equals(h)); // 输出false
需要注意的是,由于在-128~127范围内的整型数值被缓存,因此这个范围外的整型数值对应的Integer对象不一定相等。
五、小结
Integer的equals函数用于比较两个整型数值是否相等,返回boolean类型。当两个整型数值在-128~127范围内时,它们对应的Integer对象也会相等。需要注意类型转化和空指针问题,以及缓存范围外的整型数值不一定相等。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/271966.html