`
百合不是茶
  • 浏览: 356071 次
社区版块
存档分类
最新评论

equals和== 的使用及误区

阅读更多

 

== 是运算符默认的是比较地址 可以与基本数据类型进行比较, 检测地址是否相等

  

equals是方法,不可以与基本类型比较 默认的是检测两个内容是否相等   当一个类没有重写equals方法时,默认的是object的equals方法此时和==比较是一样,(equals判定字符串判定的内容,)

 

		String s1 = "abc";
		String s2 = "abc";
                System.out.println(s1 == s2);
                System.out.println(s1.equals(s2));

 

输出结果:
true
true

 s1和s2是相同的地址     equals的内容也相同

 

 

		 int a = 100;
		 int b = 100;
		 System.out.println(a == b);

 

输出:
true

 

 equals不能比较基本数据类型     a与b相同会输出true

 

                String s3 = new String("abc");
		String s4 = new String("abc");
               System.out.println(s3 == s4);
	       System.out.println(s3.equals(s4));
 

 

输出
false
true

 s3和s4创建的对象肯定不是一个地址s3==s4输出false

s3与s4创建对象时的参数相同,equals为true

 

class Student{
private String name;
   public Student(String name){
  this.name = name;
   }
//重写equals的方法
 public boolean equals(Student obj){
    return name.equals(obj.name);
   }
}

 

                Student stu1 = new Student("abc");
		Student stu2 = new Student("abc");
		System.out.println(stu1.equals(stu2));

 

输出:true

重写equals内容的比较,如果name相同则输出true

 

 

2
0
分享到:
评论

相关推荐

    java中的==和equals()方法1

    在Java编程语言中,了解如何正确使用`==`和`equals()`方法是非常关键的,因为它们在比较对象和基本类型时有不同的行为。下面将详细解释这两个方法的工作原理、使用场景以及一些常见误区。 首先,`==`运算符主要用于...

    详解java中保持compareTo和equals同步

    这两者之间的关系看似简单,但实际上却存在着很多陷阱和误区。 在实现 Comparable 接口时,我们需要覆写 compareTo 方法,该方法返回一个整数值,用于表示当前对象和另一个对象的大小关系。如果返回值为 0,则表示...

    String 比较

    在Java中,比较两个 `String` 对象通常有两种方法:使用 `==` 运算符和调用 `equals()` 方法。这两种方法的行为有很大的区别,理解它们之间的差异对于编写正确的代码至关重要。 ### 使用 `==` 进行比较 `==` ...

    在我的JSP学生信息管理系统中的检测用户名是否重复的页面中时 遇到了一个可笑的问题.doc

    #### 三、常见误区:`equals`关键字的使用 在JSP或Java中,`equals`方法用于比较两个对象的值是否相等,而非直接使用`==`操作符。`==`通常用于比较基本类型数据或对象引用是否相同。因此,在比较字符串或其他对象时...

    java程序中容易出错的地方

    在Java编程中,即便是经验丰富的开发人员也难免会遇到一些常见的陷阱和误区。本文将深入探讨这些易错点,帮助开发者更好地理解这些问题,并学会如何避免它们。 #### 1. 类加载问题 Java类加载机制是Java运行时环境...

    1222-张国旗-JAVA陷阱.rar

    7. **异常处理滥用**:过多使用try-catch块可能导致代码难以阅读和维护。应尽量明确异常的类型,只捕获需要处理的异常,避免使用过于宽泛的catch块。 8. **资源管理**:文件流、数据库连接等资源应在使用后及时关闭...

    java常犯错误

    14. **线程不安全的集合**:像`ArrayList`和`HashMap`在多线程环境下直接使用可能会引发数据不一致。应考虑使用线程安全的集合,如`CopyOnWriteArrayList`和`ConcurrentHashMap`。 15. **静态变量滥用**:静态变量...

    Java编写中容易搞错的一些东西.rar

    以下是一些Java编程中的常见陷阱和理解误区,我们将会深入探讨这些知识点,帮助你避免在开发过程中走弯路。 1. **变量作用域**:Java中的变量有其特定的作用域,一旦变量在某个范围内定义,它的生命周期就限制在这...

    Java.Bug模式详解

    理解synchronized关键字的使用,合理设计线程间通信,使用并发工具如Semaphore、CountDownLatch和CyclicBarrier,能有效避免这些问题。 四、资源泄漏(Resource Leak) 在处理IO流、数据库连接或其他资源时,忘记...

    effective-java 配套代码

    6. **重写equals()和hashCode()方法(Overriding equals() and hashCode())**: 代码展示了如何正确实现这两个方法以遵循合同,尤其是在实现集合类时的注意事项。 7. **接口与抽象类(Interfaces vs Abstract ...

    Java编程中常见的坑

    ### Java编程中常见的坑 #### 1. 自动拆箱时遇到null会抛出空指针异常 在Java中,当我们尝试将一个包装类类型...以上列举了Java开发过程中常见的一些陷阱和误区,希望这些知识点能帮助开发者提高代码质量和开发效率。

    13.支付系统的心脏:简洁而精妙的状态机设计与核心代码实现_V20240121.pdf

    ### 知识点提炼 #### 1. 支付系统中的状态机概念 - **定义**:状态机,又称有限状态机(FSM, Finite State Machine)...正确的做法应该是使用状态模式和事件驱动机制来实现状态机逻辑,确保代码的可读性和可维护性。

    Java陷阱一箩筐.doc

    【Java陷阱一箩筐】 Java 语言中包含许多微妙的概念和陷阱,对于开发者来说,理解这些概念至关重要...以上是 Java 开发中的一些常见陷阱和知识点,理解和掌握它们能帮助你在面试和日常开发中避免误区,提高代码质量。

    JAVA面试题-代码查错

    13. **equals()与hashCode()**:当重写`equals()`方法时,应同时重写`hashCode()`,以保持对象的等价关系和哈希表的行为一致。 14. **线程安全问题**:在多线程环境中,共享变量的更新可能引发数据不一致。使用`...

    解压zip压缩包中的指定文件(害死人的错误)

    这些错误可能源于不正确的编程实践,如资源管理不当、文件路径错误或理解ZIP文件结构的误区。 描述中提到的博文链接(已省略)通常会提供一个具体的案例,展示如何通过编写Java代码来解决这个问题。由于链接不可用...

    2021-2022计算机二级等级考试试题及答案No.10720.docx

    对于整数和字符的输入,需要使用相应的格式符。 **描述**:为了正确读取整数和字符,输入数据时应遵循`scanf`函数指定的格式,即整数和字符之间不能有空格分隔。 ### 17. 解释执行语言 **知识点**:解释型语言在...

    2021-2022计算机二级等级考试试题及答案No.9936.docx

    - **小型数据库管理系统**:如Microsoft Access,适用于小型项目和个人使用。 - **大型数据库管理系统**:如Oracle、SQL Server,适用于大型企业级应用。 ### 10. Java中字符串比较 - **比较方法**:使用`....

    2021-2022计算机二级等级考试试题及答案No.18110.docx

    通过使用适当的数据库管理系统(DBMS),可以有效地减少数据冗余,确保数据的一致性和完整性,并且支持多用户同时访问和共享数据。 #### 6. C语言函数 - **知识点**:此题考查了C语言中如何实现两个浮点数乘积的...

Global site tag (gtag.js) - Google Analytics