1.Object类
概念及常用方法
所有类的祖先类/超类/基类,一个类没有明确继承某个父类,均自动继承Object
Object作为祖先类,起着类的标杆的作用
方法 | 描述 |
---|---|
equals(Object obj) | 比较两个对象是否一致 |
hashCode() | 返回该对象的hash值 |
getClass() | 返回该类的字节码文件对象 |
toString() | 返回该对象的字符串表示 |
方法演示
public class Test {
public static void main(String[] args) {
Object obj1 = new Object();
Object obj2 = new Object();
/**
* equals方法:比较两个对象是否一致
* 源码分析:
* public boolean equals(Object obj) {
* return (this == obj);
* }
* 理解:对象==对象,直接比较的是内存地址是否一致
*/
boolean equals = obj1.equals(obj2);
System.out.println(equals);//false
/**
* hashCode方法:获取该对象的hash值
* 源码分析:
* public native int hashCode();//具体实现被java隐私化
* 理解:hash值是通过内存地址+算法 计算出的,但是hash值不等同于内存地址
*/
int hashCode = obj1.hashCode();
System.out.println(hashCode);
/**
* getClass方法:获取该类的字节码文件对象
* 源码分析:
* public final native Class<?> getClass();//具体实现被java隐私化
* 理解:java是面向对象的语言,在此语言里万物皆对象,字节码文件(.class)也不例外,也是个对 * 象。任意一个类的字节码只加载到内存中一次,所以该类的字节码对象都是相同的
*/
Class c1 = obj1.getClass();
Class c2 = obj2.getClass();
System.out.println(c1);//class java.lang.Object
System.out.println(c2);//class java.lang.Object
System