一、Object 类

如果一个类没有指定父类,默认就是继承 Object 类。Object 类里面共有 11 个方法:经常用到的 equals(),toString() 都是直接使用或者重写 Object 里面的这些方法;另外还有 final native 修饰的方法:反射需要用到的 getClass(),线程操作需要的 notify(),notifyAll(),wait(long timeout);还有 native 修饰的方法:hashCode() 和 clone()

源码:

package java.lang;public class Object {private static native void registerNatives();static {registerNatives();}public final native Class<?> getClass();public native int hashCode();public boolean equals(Object obj) {return (this == obj);}protected native Object clone() throws CloneNotSupportedException;public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}public final native void notify();public final native void notifyAll();public final native void wait(long timeout) throws InterruptedException;public final void wait(long timeout, int nanos) throws InterruptedException {if (timeout < 0) {throw new IllegalArgumentException("timeout value is negative");}if (nanos < 0 || nanos > 999999) {throw new IllegalArgumentException("nanosecond timeout value out of range");}if (nanos > 0) {timeout++;}wait(timeout);}public final void wait() throws InterruptedException {wait(0);}protected void finalize() throws Throwable { }
}

二、Objects 类

Objects 类是 final 修饰的类,不可继承,内部方法都是 static 方法,从 jdk1.7 开始才引入了 Objects 类。

源码:

package java.util;import java.util.function.Supplier;public final class Objects {private Objects() {throw new AssertionError("No java.util.Objects instances for you!");}public static boolean equals(Object a, Object b) {return (a == b) || (a != null && a.equals(b));}public static boolean deepEquals(Object a, Object b) {if (a == b)return true;else if (a == null || b == null)return false;elsereturn Arrays.deepEquals0(a, b);}public static int hashCode(Object o) {return o != null ? o.hashCode() : 0;}public static int hash(Object... values) {return Arrays.hashCode(values);}public static String toString(Object o) {return String.valueOf(o);}public static String toString(Object o, String nullDefault) {return (o != null) ? o.toString() : nullDefault;}public static <T> int compare(T a, T b, Comparator<? super T> c) {return (a == b) ? 0 :  c.compare(a, b);}public static <T> T requireNonNull(T obj) {if (obj == null)throw new NullPointerException();return obj;}public static <T> T requireNonNull(T obj, String message) {if (obj == null)throw new NullPointerException(message);return obj;}public static boolean isNull(Object obj) {return obj == null;}public static boolean nonNull(Object obj) {return obj != null;}public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier) {if (obj == null)throw new NullPointerException(messageSupplier.get());return obj;}
}

Object 和 Objects 的区别相关推荐

  1. Object和Objects的区别

    Object类 如果一个类没有指定父类,默认就是继承Object类. Object类里面共有11个方法: 经常用到的equals(),toString()都是直接使用或者重写的Object里面的这些方 ...

  2. API:Math、System、Object、Objects、equals、toString、BigDecimal

    API: Application Programming Interface  应用程序接口 简单来说:就是Java已经帮我们写好的接口,直接拿来用即可 api文档--甲骨文官网---下载java-- ...

  3. java之Thread.sleep(long)与object.wait()/object.wait(long)的区别及相关概念梳理(good)

    一.Thread.sleep(long)与object.wait()/object.wait(long)的区别 sleep(long)与wait()/wait(long)行为上有些类似,主要区别如下: ...

  4. html标签object和embed,html标签object和embed的区别

    object和embed的区别 The code in bold above is the actual code that you need to place in your page to emb ...

  5. flash文本呈现html啥意思,显示flash内容时用的OBJECT和EMBED标签区别介绍

    显示flash内容时用的OBJECT和EMBED标签区别介绍 发布时间:2014-05-13 18:03:29   作者:佚名   我要评论 要在网页中正常显示flash内容,那么页面中必须要有指定f ...

  6. Object和Objects(java)

    Object和Objects 文章目录 Object和Objects Object Object的构造方法 Object的成员方法 public String toString() public bo ...

  7. scala class和object,trait的区别

    2019独角兽企业重金招聘Python工程师标准>>> Scala类 class Counter {private var value = 0 // 必须初始化字段def incre ...

  8. scala(3):class和object,trait的区别

    2019独角兽企业重金招聘Python工程师标准>>> Scala类 1 2 3 4 5 6 7 8 9 10 11 12 13 class Counter { private va ...

  9. AS3中Object与Dictionary的区别

    AS3中的Dictionary类(flash.utils.Dictionary)是一个新的AS类. Dictionary类和Object唯一的区别在于: Dictionary对象可以使用非字符串作为键 ...

最新文章

  1. ffmpeg php 抠像_PHP中使用ffmpeg截取视频图片笔记
  2. 用Everything搜索指定的路径
  3. 数据类型之Integer与int
  4. HTML5 Web Storage用法
  5. android scrollow嵌套listview,excel 中IDEX和MATCH函数嵌套应用.doc
  6. 简易RAM的C++实现
  7. es浏览器连接电脑找不到服务器,es文件浏览器,详细教您es文件浏览器怎么连接电脑...
  8. 有声小说php源码,PHP魅雅有声小说联盟程序源码 v7.7.2
  9. autocad 职称计算机,2015职称计算机考试《AutoCAD》考点总结(1)
  10. 薇娅直播卖火箭,B 站酒泉发卫星,航天贴标生意凭什么?
  11. vue实现中英文切换
  12. 修改植物大战僵尸游戏存档
  13. ChucK初步(10)
  14. 天风掌财社新股认购如何操作?
  15. Cortana与应用程序的后台交互
  16. 君越更换初装变速箱油教程
  17. 菜鸟读财报,如何从上市公司财报中挖情报?--微博转载
  18. Java实现HighCharts纯后台图表生成
  19. 不用带眼镜 东芝裸眼3D电视9个角度随便看
  20. 互联网测试校招系列1:赢在测试岗位

热门文章

  1. Mac安装docker(轻松解决安装)
  2. spring异步线程传递线程上下文
  3. c语言50个学生3课成绩平均成绩,C语言:有5个学生,每个学生有3门课的成绩,从键盘输入学生数据,计算平均成绩...
  4. PHP实现微信获取用户基本信息(openid、头像、昵称)
  5. 【感悟】2019/3/11
  6. Excel批量插入多行
  7. 全球与中国车队管理咨询服务市场现状及未来发展趋势
  8. lol男爵领域服务器未响应,lol男爵领域登录不了怎么办?男爵领域怎么登陆不上?...
  9. 20221208 QT----新建工程
  10. 三步教你鉴别iPad阴阳屏