Java中Object类

概念:所有类的祖先类/超类/基类,一个类没有明确继承某个父类,均自动继承Object

Object作为祖先类,起着类的标杆的作用

常用方法

方法描述
equals(Object obj)比较两个对象内存地址是否一致
hashCode()返回该对象的hash码
getClass()返回该类的字节码文件对象
toString()返回该对象的字符串表示
(一)equals
int a = 20;
int b = 10;
System.out.println(a == b);//false
    
//object类
Object obj1 = new Object();
Object obj1 = new Object();
System.out.println(obj1 == obj2);//false
        
System.out.println(obj1.equals(obj2));//false
equals底层逻辑
public boolean equals(Object obj){
    return(this == obj)
}
//this -- 调用equals方法的对象
//obj -- 形参
//判断obj1与obj1是否相等
(二)hashCode

hash码是内存地址+散列算法算出来的一个int值,hash码不等于内存地址。

Object obj1 = new Object();
Object obj2 = new Object();
        
System.out.println(obj1.hashCode());//366712642
System.out.println(obj2.hashCode());//1829164700
(三)getClass

使用到一个类,如果这个类没有加载到方法区时,就会加载。

JVM会将该类的class文件加载到方法区,在堆中创建该类的class文件的对象(简称class对象)。class对象作为该类class文件的访问入口。

//获取Object类的class对象
Class<?extends Object> class1 = obj1.getClass();
Class<?extends Object> class2= obj2.getClass();
        
System.out.println(class1 == class2);//true

类的class文件只加载一次,所以该类的class对象只有一个

(四) toString

在Object中打印对象,默认调用toString(),获取该对象的字符串表示。

//object类
Object obj1 = new Object();
Object obj2 = new Object();
            
System.out.println(obj1);//java.lang.Object@15db9742
System.out.println(obj2.toString());//java.lang.Object@6d06d69c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值