0
点赞
收藏
分享

微信扫一扫

==和equals()的区别&&java.lang.Object类&&Object类中toString()的使用

德州spark 2022-01-15 阅读 177

一,回顾==的使用
==:运算符
    1.可以使用在基本数据类型变量和引用数据类型变量中
    2.如果比较的是基本数据类型的变量:比较两个变量保存的数据是否相等。(不一定类型要相同)
      如果比较的是应用数据类型的变量:比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体
    补充:==符号使用时,必须保证符号两边的变量类型一致。


二,equals()方法的使用
    1.是一个方法,而非运算符
    2.只能适用于引用数据类型
    3.Object类中equals()的定义:
        public boolean equals(Object obj){
            return (this==obj);
        }
        说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体

4.像Sring,Date,File,包装类等都重写了Object类中的equals()方法。重写以后,比较的不是
    两个引用的地址是否相同,而是比较两个对象的“实体内容”是否相同。

5.通常情况下,我们系定义的类如果使用equals()的话,也通常是比较两个对象的“实体内容”是否相同。那么,
  就需要对Object类中的equals()进行重写
  重写的原则:比较两个对象的试实体内容(即:name和age)是是否相同

二,java.lang.Object类

1.Object类是所有Java类的根父类
2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
3.Object类中的功能(属性,方法)就具有通用性。
    属性:无
    方法:equals() / toString() / getClass() / hashCode() / cione() / finalize() / 
         wait() ,notify() ,notifyAll()


4.Object类只声明了一空参构造器

面试题:
final,finally,finalize的区别?
finalize不是关键字,是在对象被回收之前调用当前对象的finalize的方法

四,Object类中toString()的使用:

1.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()

2.Object类中toString()的定义:
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

3.像String,Date,File,包装类等都重写了Object类中的toString()方法。
  是得在调用对象的toString()时,返回“实体内容”信息

4.自定义类也可以重写toString()方法,当使用此方法时,返回对象的“实体内容”

 

举报

相关推荐

0 条评论