Object Class 是所有java类自动继承的父类,看看这个类都有什么成员
private static native void registerNatives();
static {
     registerNatives();
}
关联c函数,类似于将c的函数导入过来,这样你就可以调用c的函数了,主要导入的函数是
static JNINativeMethod methods[] = {
{“hashCode”, “()I”, (void *)&JVM_IHashCode},
{“wait”, “(J)V”, (void *)&JVM_MonitorWait},
{“notify”, “()V”, (void *)&JVM_MonitorNotify},
{“notifyAll”, “()V”, (void *)&JVM_MonitorNotifyAll},
{“clone”, “()Ljava/lang/Object;”, (void *)&JVM_Clone},
}; clone
所以当调用这些方法时,实际上是调用的c函数
public native int hashCode();
按照java约定规范,每个object都应该有一个hashcode值,主要用来支持哈希表,可以考虑这个问题,是怎么保证每个对象的哈希值接近不重复,下面英文描述一种方式是将对象的内部地址转化为一个整数作为hash值,还有一种方式通过对字符进行位运算
* As much as is reasonably practical, the hashCode method defined by
* class {@code Object} does return distinct integers for distinct
* objects. (This is typically implemented by converting the internal
* address of the object into an integer, but this implementation
* technique is not required by the
* Java<font size="-2"><sup>TM</sup></font> programming language.)
protected native Object clone() throws CloneNotSupportedException;
这是一个native方法,按照约定,这个方法是返回一个对象的copy,相当于在内存中把这个对象重新复制了一下,可以研究下copy的深度
copy需要满足的约定:x.clone != x   但x.clone.getClass() == x.getClass() 不是必须的要求。
copy的默认规则,如果是primitive type直接返回,如果是引用类型,返回引用类型,所以注意引用类型
如过一个类支持clone必须实现接口Cloneable,否则抛出CloneNotSupportedException
protected void finalize() throws Throwable { }
java垃圾回收机制规定,在一个对象呗销毁前必须要调用的方法
public final native void notify();
public final native void notifyAll();
public final native void wait(long timeout) throws InterruptedException;
一些方法主要是和线程有关
总结,Object class 主要是一些native方法,用于jvm和系统减进行交互,还有就是实现java一些基本的约定,比如hashcode,clone这些方法的约定

java Object class分析相关推荐

  1. java反射最佳实践,java反射性能测试分析

    java反射性能测试分析 java有别于其他编程语言而让我着迷的特性有很多,其中最喜欢的是接口设计,他让我们设计的东西具有美感.同样反射也是我比较喜欢的一个特性,他让程序自动运行,动态加载成为了可能, ...

  2. Java服务框架分析

    Android服务框架由本地服务框架(Native Service Framework)和Java服务框架(Java Service Framework)两部分组成. Java服务框架是一系列类的集合 ...

  3. java 转储快照分析_分析Java核心转储

    java 转储快照分析 在本文中,我将向您展示如何调试Java核心文件,以查看导致JVM崩溃的原因. 我将使用在上一篇文章: 生成Java Core Dump中生成的核心文件. 您可以通过以下几种方法 ...

  4. java内存溢出分析工具:jmap使用实战

    java内存溢出分析工具:jmap使用实战 在一次解决系统tomcat老是内存撑到头,然后崩溃的问题时,使用到了jmap.  1 使用命令  在环境是linux+jdk1.5以上,这个工具是自带的,路 ...

  5. java class 文件分析_大概优秀的java程序员都要会分析class文件吧

    相信大家在学java的时候都会听到这样的一些结论: enum 是一个类 泛型的实现使用了类型擦除技术 非静态内部类持有外部类的引用 需要将自由变量声明成final才能给匿名内部类访问 ... 初学的时 ...

  6. OOM分析(1) Android 源,如何分析android的OOM,与java静态代码分析工具

    用MAT分析OOM 很多OOM看似发生在bitmap 分配得时候,但它一般不是rootcause.根本原因都在于本应该自动释放的资源,因为代码的错误,而导致某些对象一直被引用(Reference),例 ...

  7. 如何分析android的OOM,与java静态代码分析工具

    2019独角兽企业重金招聘Python工程师标准>>> 用MAT分析OOM 很多OOM看似发生在bitmap 分配得时候,但它一般不是rootcause.根本原因都在于本应该自动释放 ...

  8. JOL(java object layout --java 对象内存布局)

    JOL(java object layout --java 对象内存布局) ⚠⚠⚠本文以java普通对象为切入点,分析java的对象内存布局,数组见文末 maven地址

  9. JOL(java object layout): java 对象内存布局

    我们天天都在使用java来new对象,但估计很少有人知道new出来的对象到底长的什么样子?对于普通的java程序员来说,可能从来没有考虑过java中对象的问题,不懂这些也可以写好代码.今天,给大家介绍 ...

最新文章

  1. 60亿击败1750亿、验证胜过微调:OpenAI发现GPT-3解决数学题,并非参数越大越好...
  2. Kaggle第一人 | 详细解读2021Google地标识别第一名
  3. OpenJudge百炼习题解答(C++)--题4010:2011
  4. python获取ftp所有文件名_在Python中获取最新的FTP文件夹名称
  5. java web压缩过滤器_Java Web过滤器Filter(五)
  6. SAP License:SAP工业4.0 创新智能物流解决方案
  7. 精通Python网络爬虫:核心技术、框架与项目实战.1.4 网络爬虫的类型
  8. ARM 中断状态和SVC状态的堆栈切换 (异常)【转】
  9. 3.2 GUN as汇编(本文内容大部分引用原文,非原创)
  10. 【一起学爬虫】爬虫实战:爬取京东零食
  11. java后端 解决app接口版本管理问题
  12. 实战项目-python库分析科比生涯数据
  13. PPT中插入矢量图(以及从visio直接复制变模糊的处理方法)
  14. 车道线定位及拟合:直方图确定车道线位置
  15. sms 验证码 接收
  16. VESA编程——GUI离我们并不遥远
  17. css中 =是什么意思,CSS中link什么意思
  18. react-router v6替换history.goBack()和goForward()
  19. 也谈企业文化—执行力
  20. Powerbuilder混淆与加密器(powerbuilder防止反编译,pb混淆器,支持5-12) obfuscator for PowerBuilder...

热门文章

  1. 一分钟了解“英语表示区分”
  2. 2022款联想小新air15和联想小新pro14哪个好
  3. 纯JS+HTML+CSS实现表格增删改查翻页--模板文件管理
  4. 区块链隐私保护文献 An Efficient NIZK Scheme for Privacy-Preserving Transactions over Account-Model Blockchain
  5. C/C++输入未知组数据的方法,多行输入介绍
  6. 【加密技术】Java加密算法
  7. Three.js样条曲线、贝赛尔曲线
  8. 0.75次方怎么用计算机按,FR-E720-0.75K参数设置三菱FR-E720-0.75K指导手册(应用) - 三菱...
  9. SuperMap for MapboxGL 实现自定义图标点位及多点位聚合
  10. 蓝牙3.0/4.0/5.0联系与区别