JavaSE之Object类

Object简介

Object类是Java中所有类的根父类, Java中的类要么直接继承Object, 要么间接继承Object类
Java中类的继承是可传递的, Object类中定义的方法,所有的类都能继承到

protected Object clone()对象克隆.很少使用
boolean equals(Object obj)用于判断两个对象的内容是否一样
protected void finalize()当对象被垃圾回收器回收时,会执行 对象的finalize()方法.但是垃圾回收器在什么时候回收这个对象不确定, 即这个方法的执行时间不确定 , 一般不用.
void notify()在线程中用于唤醒等待中的 线程
Class<?> getClass()返回对象的运行时类对象, 可以简单的理解为返回对象的类的字节码文件.
int hashCode()返回对象的哈希码
void notifyAll()
String toString()把对象转换为字符串
void wait()在多线程中,让线程等待

方法详解

toString()

该方法的源码为:

public String toString() {
        return getClass().getName() + "@" +Integer.toHexString(hashCode());
    }

作用是:把对象转换成字符串
1.当我们打印一个对象的引用时,实际上默认调用的就是这个对象的toString()方法,例如 System.out.println( obj ) 打印obj对象时, 会调用对象的toString()方法
2.当我们打印的对象所在的类没有重写Object中的toString()方法时,那么调用的就是Object中定义的toString()方法,返回此对象所在的类及对应的堆空间对象实体的首地址值。
3. 当我们打印的对象所在的类重写了toString()方法时,调用的就是我们自己重写的toString()方法,常常这样重写,将对象的属性信息返回。
4.像String类,包装类,File类,Date类等,已经实现了Object类中toString()方法的重写将对象的实体内容返回

equals()

该方法的源码为:

public boolean equals(Object obj) {
        return (this == obj);
    }

①只能处理引用类型变量②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等
如果想要判断堆中两个对象的内容(即各个成员变量的值)是否一样 ,需要重写equals()方法, 根据哈希约定, 如果两个对象的equals()相等, 那么这两个对象的hashCode()也应该相等,即在重写equals()方法的同时,也要重写hashCode()
注意:如果要比较一个已知的字符串和一个需要输入的字符串是否相等时在调用equals()方法时 要把已知的字符串放在前面,这种方式可以避免空指针异常

==

“==”
①基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,反之返回false
注:两端数据类型可以不同,在不同的情况下,也可以返回true。
②引用数据类型:比较引用数据类型变量的地址值是否相等。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值