例如:两个对象里面都有一个方法为getInteger()的方法,返回的类型也是Integer的,这时候想比较两个Integer是否相等不能用"=="号,要用equals方法.
原因很简单equals方法来自Object基类。在Object里,equals的实现是直接用 == 操作符比较两个对象的内存地址。
举两个例子:
public class MainClass {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1.equals(n2));
}
}
输出结果为true,看来Integer中没有按照Object里的默认实现来比较内存地址。在Integer中,equals重载了Object的equals方法(重载指的是子类的方法覆盖掉父类的方法,而改为自己的实现),它比较的是Integer的实际值。
public class MainClass {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1 == n2);
System.out.println(n1 != n2);
}
}
这里输出的第一个结果为false,第二个为true。结合上面的代码1可以看出,==和equals的区别。
分享到:
相关推荐
### Java中Long与Integer比较易犯错误总结 #### 一、引言 在Java编程过程中,经常需要对数值进行比较操作。对于基本数据类型如`int`和`long`,可以直接使用`==`进行比较。然而,当涉及到它们的包装类`Integer`和`...
JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...
- 当使用 `==` 运算符比较 `Long` 或 `Integer` 对象时,实际是比较的是两个对象的引用是否相同,而不是它们所封装的数值是否相等。这意味着,即使两个对象封装的数值相同,如果它们是分别创建的,`==` 也会返回 `...
这是因为Integer对象提供了更丰富的功能,比如比较操作、null安全的方法等。此外,Integer还兼容Java的自动装箱和拆箱机制,使得代码更加简洁。 例如,以下是一个使用Integer作为返回值类型的MyBatis示例: ```xml...
文章探讨了一种新的变换编码方法,该方法侧重于熵编码而非量化,并且通过比较不同内存需求的熵编码方法来评估其有效性。 #### 变换编码的基本概念 变换编码是一种广泛应用于音频、图像和视频压缩的损失性压缩技术...
需要注意的是,当进行`Integer`之间的比较时,如果值在-128到127之间,Java会使用缓存来提高性能,因此比较速度较快。但超出这个范围,每个`Integer`对象都是独一无二的,即使值相同,`==`比较也会返回`false`,此时...
- **比较方法**:如`compareTo(Integer anotherInteger)`用于比较两个`Integer`对象的大小。 - **获取值的方法**:如`intValue()`, `longValue()`, `floatValue()`, `doubleValue()`用于获取`Integer`对象的不同数值...
如果比较的是数值,可以使用`compareTo()`方法,或者将`Integer`对象转换为`int`再进行比较。 在缓存和常量池方面,`Integer`类提供了一个缓存机制,用于存储-128到127之间的整数值。这意味着在这个范围内创建`...
知识点3:Integer比较 在比较两个Integer对象时,我们应该使用equals()方法,而不是==操作符,这是因为==操作符比较的是对象的地址,而不是对象的值。 知识点4:int和Integer的比较 在比较int和Integer时,...
在表达式`i1 == i2 + i3`或`i4 == i5 + i6`中,我们看到`==`操作符被用于比较`Integer`对象。在这种情况下,Java会进行拆箱操作,即将`Integer`对象转换为其对应的`int`值,然后进行数值比较。由于`i2`和`i3`(或者`...
6. 应用场景:提及IDCT在图像压缩、视频编码等领域的应用,以及与其他方法的比较。 7. 参考资料:列出相关文献和技术资源,便于读者深入学习和研究。 通过这个压缩包,读者可以系统地了解和掌握整数DCT变换的各个...
一种常见的方法是使用两个指针,同时遍历两个已排序的数组,比较它们的元素,当找到相同的元素时将其添加到结果数组中。 3. **补集**:在某个特定数组中不存在于另一数组的所有元素。如果是在有限的整数范围内操作...
这个方法通常在你需要使用`Integer`对象的特性(如缓存、比较操作或泛型方法参数)时使用。 在面试或笔试题中,如题目所示,`a = Integer.parseInt("123")`会将字符串"123"解析为`int`类型的值,并赋给变量a,所以a...
此外,还可能有位操作(如左移和右移)以及比较操作。 4. **性能优化**:对于大整数运算,效率至关重要。高效的算法(如Karatsuba乘法、Toom-Cook算法或者更高级的FFT方法)可能被用来加速乘法。同时,减法、除法和...
根据给定文件的信息,我们可以对整数集合类`integerSet`进行详细...通过以上分析可以看出,`integerSet`类实现了基本的集合操作,包括比较、交集、并集及删除等。在实际应用中,此类可以根据具体需求进一步扩展和完善。
举例分析 equals 和 hashcode 方法,hashcode应该怎么样生成 8个基本类型与基本对象的比较:byte与Byte shot与Short int与Integer long与Long float与Float double与Double char与Character
在编程领域,大整数(Big Integer)是指能够表示超出普通整型变量范围的非常大的数值。在C++中,由于标准库并没有内置大整数类型,因此在处理需要存储和操作大整数的场景时,程序员通常需要自定义一个大整数类。标题...
在Java编程语言中,`Integer`和`int`是两...总结来说,`Integer`和`int`在用途、默认值和内存管理上有显著区别,`==`和`equals()`则分别用于比较对象的引用和内容。理解这些基本概念对于编写高质量的Java代码至关重要。
在Java编程语言中,`Integer` 类是 `int` 基本类型的包装类,它提供了许多额外的功能,如比较、格式化等。当我们使用 `Integer.valueOf()` 方法将字符串或整数值转换为 `Integer` 对象时,Java会进行一些优化以提高...