首页 > 技术文章 > 运算符==和equals()方法

quanziheng 2020-01-08 12:29 原文

1.运算符==

  (1)两个变量是基本数据类型,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就返回true。

  (2)两个引用类型变量,只有当它们指向同一对象时,==才会返回true。==不能用于比较类型上没有父子关系的两个对象。

 

 

 

 

 

  (3)"hello"直接量和new String(“hello”)的区别

    

 

   (4)常量池

    用于管理在编译时被确定并被保存在已编译的 .class文件中的一些数据。它包括了关于类、方法、接口中的常量,还包括字符串常量。

   (5)JVM常量池管理字符串常量示例

  

 

 

 

 

2.equals()方法

  equals 作为 Object 类的实例方法,所有引用变量都可以调用该方法来判断是否与其他引用变量相等,但此方法判断两个对象相等的标准与 == 并没有区别,因此 Object 提供的 equals() 方法意义不大,通过重写 equals 方法来实现想要实现的相等标准。

  (1)String对equals方法的重写

  

 

  (2)equals方法重写示例

 

 

 

 

 

   (3)较合理的重写示例

 

 

 说明:

以上的程序重写了 Person 类的 equals方法,相等的标准是若两个 Person 对象的 idStr 相等,则两个对象相等。

 

   (4)重写equals方法要满足的条件:

 

推荐阅读