操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。<br>如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()是另一个内存,此时,变量obj所对应的内存中存储的数值就是对象占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较。<br>equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如,对于下面的代码:<br>String a=new String("foo");<br>String b=new String("foo");<br>两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将返回false,而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回true。<br>在实际开发中,我们经常要比较传递进行来的字符串内容是否等,例如,String input = …;input.equals(“quit”),许多人稍不注意就使用==进行比较了,这是错误的,随便从网上找几个项目实战的教学视频看看,里面就有大量这样的错误。记住,字符串的比较基本上都是使用equals方法。<br>如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:<br>boolean equals(Object o){<br>return this==o;<br>}<br>这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。
分享到:
相关推荐
JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...
HugeInteger.java
在Java编程中,将一个`List<Integer>`转换成以逗号分隔的`String`字符串是一种常见的需求,尤其是在处理数据展示或格式化输出时。Java 8引入了新的特性和方法,使得这种转换变得更加简洁和高效。下面我们将深入探讨...
而在需要使用对象,尤其是与集合框架交互,或者需要额外的功能(如转换字符串、比较等)时,`Integer`则是必要的。在实际编程中,了解并合理利用这些差异,可以帮助我们编写出更加高效和可维护的代码。
在Java编程语言中,将`Integer`对象转换为基本数据类型`int`有两种常见的方法:`Integer.parseInt()`和`Integer.valueOf()`。理解这两种方法的区别和应用场景对于编写高效且正确的Java代码至关重要。 首先,我们来...
对JAVA中的int类型和integer类型进行透彻分析的一个文档 很有帮助的哦 亲!
需要注意的是,当进行`Integer`之间的比较时,如果值在-128到127之间,Java会使用缓存来提高性能,因此比较速度较快。但超出这个范围,每个`Integer`对象都是独一无二的,即使值相同,`==`比较也会返回`false`,此时...
JAVA Integer类型自加实例详解 JAVA Integer类型自加实例详解是 Java 语言中一个非常重要的知识点,对于 Java 开发者来说,无论是初学者还是高级开发者 都需要了解和掌握这方面的知识。本文将深入探讨 Java Integer...
项目里遇到的小问题的 整理
java中Integer包装类的详细讲解(java二进制操作,所有进制转换) 十进制转成二进制 十进制转八进制 十进制转十六进制 十六进制转成十进制 十六进制转成二进制 八进制转成十进制 等等所有进制转换和操作
### Java中Long与Integer比较易犯错误总结 #### 一、引言 在Java编程过程中,经常需要对数值进行比较操作。对于基本数据类型如`int`和`long`,可以直接使用`==`进行比较。然而,当涉及到它们的包装类`Integer`和`...
Java 基础知识点包括变量的声明、数据类型、运算符、控制结构、方法、面向对象编程、`int` 和 `Integer` 的区别、`==` 和 `equals` 的区别、静态变量和静态方法等。掌握这些基础知识点是学习 Java 的基础。
本文将深入探讨Java的基础知识,包括数据类型、包装类型、自动装箱与拆箱以及Integer类的缓存池机制。 1. 数据类型 Java的数据类型分为两大类:基本类型(Primitive Data Types)和引用类型(Reference Types)。...
6. **比较**:对于 `int`,可以直接使用 `==` 进行值的比较,而对于 `Integer`,必须使用 `.equals()` 方法,除非进行的是对象引用的比较。 7. **缓存**:`Integer` 类有一个内置的缓存,用于存储-128到127之间的值...
首先,Integer是Java中的一个包装类,它封装了基本类型int。当我们创建一个Integer对象时,实际上是在堆内存中分配了一个新的空间,并将int值存储在这个对象的`value`字段中。由于`value`字段被声明为`final`,这...
举例分析 equals 和 hashcode 方法,hashcode应该怎么样生成 8个基本类型与基本对象的比较:byte与Byte shot与Short int与Integer long与Long float与Float double与Double char与Character
"Java基础之Integer使用的注意事项及面试题" Java 中的 Integer 对象是一种 wrapper class,它可以将基本类型 int 转换为对象。然而,在使用 Integer 对象时,需要注意一些细节,以避免出现意外的结果。 首先,...
总的来说,Java的基础知识包括基本数据类型的理解与使用、String类的特性与操作、数组的声明、初始化和使用,以及基础数据类型与对象之间的转换。熟练掌握这些概念是成为Java程序员的第一步,也是进一步学习高级特性...
### Java基础知识详解 #### 一、面向对象的基本特征 面向对象编程(OOP)是现代软件开发的核心技术之一,Java作为一种支持面向对象特性的语言,具备四大核心特征:抽象、继承、封装和多态。 1. **抽象**:抽象是OOP...