Java常用类库 - Object和Objects

Java常用类库 - Object和Objects

Java常用类库 - Object和Objects

位于java.lang包下

Object类

Object 类是Java语言中的根类,所有的类都直接或者间接的继承自Object类。即 如果一个类没有指定父类,那么默认继承Object类(所有类的父类)。

构造方法

构造器描述Object()构造一个新对象

Object类的构造方法为无参构造而且只有一个,这就是为什么所有类的默认构造函数为无参构造:所有的类均继承自Object类,子类对象默认访问父类即Object的构造即无参构造。

所有方法

变量和类型方法描述protected Objectclone()创建并返回此对象的副本(浅克隆)booleanequals(Object obj)某个对象是否与之相等ClassgetClass()final方法,返回此Object的运行时类inthashCode()获取对象的hash值voidnotify()唤醒在该对象监视器上等待的单个线程voidnotifyAll()唤醒等待此对象监视器上的所有线程StringtoString()返回对象的字符串表示形式voidwait()当前线程等待获得锁,直到获得锁或中断voidwait(long timeoutMillis)设置一个超时时间(毫秒)voidwait(long timeoutMillis,int nanos)设置一个超时时间(毫秒+纳秒)

线程调用wait()方法后进入睡眠状态,以下情况会被终止线程睡眠:

其他线程调用了该对象的notify()/notifyAll()方法;其他线程调用了interrupt中断该线程;时间间隔到了(如果有的话)。

Objcets类

位于java.util包下

此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括null或null方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。

所有方法

常用方法

1.equals(Object a,Object b)

解决调用对象为空的情况,比如:

public static void main(String[] args){

String s1 = null;

String s2 = "abc";

System.out.println(s1.equals(s2));// NullPointerException

}

当调用对象s1为null时,编译器就会抛出NullPointerException,那么为了避免这种情况,就可以使用Objects类的equals()方法:

public static void main(String[] args){

String s1 = null;

String s2 = "abc";

//System.out.println(s1.equals(s2));// NullPointerException

System.out.println(Objects.equals(s1,s2));// false

}

下面附上Objects的equals()源码

public static boolean equals(Object a, Object b) {

//==判断地址

return (a == b) || (a != null && a.equals(b));

}

2…requireNonNull(T obj)

要求对象obj必须是非空,否则就抛出异常,在一些要求对象数据必须非空的场景下非常好用:

public static void main(String[] args) throws CloneNotSupportedException {

String s = null;

Objects.requireNonNull(s);

}

源码

public static T requireNonNull(T obj) {

if (obj == null)

throw new NullPointerException();

return obj;

}

eNonNull(T obj) {

if (obj == null)

throw new NullPointerException();

return obj;

}

相关推荐

溜冰毒后为什么会产生幻觉、妄想?
日博365bet手机版

溜冰毒后为什么会产生幻觉、妄想?

2025-08-18 👁️ 4801
揭秘Apache Tomcat 8.5.x:高效Java Web服务器的优化与实战技巧
各个版本《天龙八部》豆瓣评分对比
h365邮箱官网

各个版本《天龙八部》豆瓣评分对比

2025-11-03 👁️ 4439
dnf增幅10要多少钱(dnf振幅10需要多少游戏币)
h365邮箱官网

dnf增幅10要多少钱(dnf振幅10需要多少游戏币)

2025-11-04 👁️ 193
「新修版」金庸真的比較差嗎?金輪法王和尹志平為什麼要改名?
3GB流量能用多久?
365bet中国大陆网址

3GB流量能用多久?

2025-08-12 👁️ 5266