Object类
如果一个类没有指定父类,默认就是继承Object类。
Object类里面共有11个方法:
经常用到的equals(),toString()都是直接使用或者重写的Object里面的这些方法;
另外还有final native修饰的方法:反射需要用到的getClass(),线程操作需要的notify(),notifyAll(),wait(long timeout);
还有native修饰的方法:hashCode()和clone()
返回值 | 方法名 | 作用 |
---|---|---|
protected Object | clone() | 创建并返回此对象的副本 |
boolean | equals(Object obj) | 判断一些其他对象是否等于此 |
protected void | finalize() | 当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象 |
Class<?> | getClass() | 返回此Object的运行时类 |
int | hashCode() | 返回对象的哈希码值 |
void | notify() | 唤醒正在等待对象监视器的单个线程 |
void | notifyAll() | 唤醒正在等待对象监视器的所有线程 |
String | toString() | 返回对象的字符串表示形式 |
void | wait() | 导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法 |
void | wait(long timeout) | 导致当前线程等待,直到另一个线程调用 notify()方法或该对象的 notifyAll()方法,或者指定的时间已过 |
void | wait(long timeout, int nanos) | 导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法,或者某些其他线程中断当前线程,或一定量的实时时间 |
Object类
1 | package java.lang; |
Objects类
Objects类是final修饰的类,不可继承,内部方法都是static方法,从jdk1.7开始才引入了Objects类
返回值 | 方法名 | 作用 |
---|---|---|
static |
compare(T a, T b, Comparator<? super T> c) | 如果参数a,b相同则返回0,否则返回c.compare(a, b)的结果 |
static boolean | deepEquals(Object a, Object b) | 对比a,b参数是否深层次相等,假定a,b为数组,对比数组的每个参数 |
static boolean | equals(Object a, Object b) | 对比a,b参数是否相等 |
static int | hash(Object… values) | 为输入值序列生成哈希码 |
static int | hashCode(Object o) | 返回哈希码。如果o为null则返回0 |
static boolean | isNull(Object obj) | 如果obj参数为null返回true |
static boolean | nonNull(Object obj) | 如果obj参数不为null返回true |
static |
requireNonNull(T obj) | 检查指定的对象引用不是 null,为null报空指针错误 |
static |
requireNonNull(T obj, String message) | 检查指定的对象引用不是null并抛出自定义的NullPointerException(如果是) |
static |
requireNonNull(T obj, Supplier |
检查指定的对象引用不是null并抛出一个自定义的NullPointerException(如果是) |
static String | toString(Object o) | 返回对象的字符串表示形式 |
static String | toString(Object o, String nullDefault) | 如果第一个参数不是 null ,则返回第一个参数调用 toString的结果,否则直接将第二个参数nullDefault返回 |
Objects类
1 | package java.util; |