java中Object类的equals理解
程序员文章站
2024-02-09 17:12:04
...
基本概念:
- Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入;
- Object类是所有Java类的祖先。每个类都使用 Object 作为超类。
- Object类中equals方法源代码如下:
public boolean equals(Object obj) { return this == obj; }
以下给出解释
指示其他某个对象是否与此对象“相等”。
this与obj形参所引用的对象是否是同一个对象,所谓同一对象就是内存中同一块存储单元,如果this和obj指向的是同一块内存,则返回true,不是同一块内存,则返回false;
-
package com.hbsi.test; public class TestEquals { public static void main(String[] args) { /* * Object中的equals和"=="一样,都是比较两个对象的内存地址,是否指向同一块内存 */ Person p1 = new Person(); Person p2 = new Person(); System.out.println(p1.equals(p2)); System.out.println(p1 == p2); /* * String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同。 */ String s1 = new String("AA"); String s2 = new String("AA"); System.out.println(s1.equals(s2)); System.out.println(s1 == s2);//比较两个对象的内存地址 } } class Person { private String userName; private String age; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
输出结果
false false true false
总结:Object中的equals和"=="一样,都是比较两个对象的内存地址,是否指向同一块内存 String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同
上一篇: Mysql系列(十五)mysql主从配置
推荐阅读
-
java中Object类的equals理解
-
荐 深入理解Java中的BigInteger和 BigDecimal,再也不怕面试了
-
PHP中类的理解和应用
-
PHP中类的理解和应用[二]_PHP教程
-
Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter
-
定义两个接口,其中各包括一个抽象方法分别用来完成两个数的加法和减法操作,然后创建一个类KY6_3来实现这两个接口中的抽象方法。编写程序KY6_3.java,将源程序写在实验报告中。
-
JAVA 将一个StringBuffer类对象中的所有小写字母变为大写字母,大写字母变为小写字母,然后输出显示
-
荐 Java——集合中的Map接口通过HashMap类实现一些常用的方法
-
Java中的File类
-
【Java】利用json工具类,传入字段名,获取集合中的对象属性值集合