天天看点

Java Object类及其equals方法

首先看一道面试题

描述==与equals的区别

给出的答案是:==是一个运算符。

Equals是string对象的方法,可以.出来。

个人觉得嗯,缺点啥~~~ 这边的equals指的是什么呢?

首先说说Object中的equals吧

基本概念:

Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入;

Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。可以使用类型为Object的变量指向任意类型的对象

equals()方法:比较两个对象是否同一

      如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等。如果两个引用对象指的是同一个对像,则称这两个变量同一。Object类中定义的equals 函数原型为:

public boolean equals(Object);他是判断两个对象是否同一,并不是是否相等

Java Object类及其equals方法

 ①只能处理引用类型变量

 ②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等

 

  

Java Object类及其equals方法

从运行结果可以看到的是Object中的equals方法比较的是两个对象是否同一,

而String类中的equals方法比较的是字符串的value是否相等。 请看String.java中equals的方法

Java Object类及其equals方法

-------------------------<b> A little Progress a day makes you a big success... <b> ----------------------------</b></b>