首页 > 编程语言 >Object源码阅读

Object源码阅读

时间:2023-06-12 21:23:52浏览次数:51  
标签:阅读 void Object nanos 源码 timeout public native

Object源码阅读

native:本地栈方法,使用C语言中实现的方法。

package java.lang;

public class Object {
	//注册本地方法
    private static native void registerNatives();
    static {
        registerNatives();
    }

    //返回Object对象的class
    public final native Class<?> getClass();

    //根据Object对象的内存地址计算hash值
    public native int hashCode();

    //比较两个对象内存地址是否相同
    public boolean equals(Object obj) {
        return (this == obj);
    }

    //浅拷贝:指针的拷贝,指针指向同一内存地址,如:Object obj1 = obj;
    //深拷贝:对象的拷贝
    //对象拷贝,深拷贝(内存地址不同)
    protected native Object clone() throws CloneNotSupportedException;

    //返回类名+@对象内存地址求hash再转16进制
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

    //唤醒一个等待object的monitor对象锁的线程
    public final native void notify();

    //唤醒所有等待object的monitor对象锁的线程
    public final native void notifyAll();

    //让当前线程处于等待(阻塞)状态,直到其他线程调用此对象的 notify()  方法或 notifyAll() 方法,或者超过参数 timeout 设置的超时时间
    public final native void wait(long timeout) throws InterruptedException;

    //nanos是额外时间,超时时间为timeout + nanos
    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 >= 500000 || (nanos != 0 && timeout == 0)) {
            timeout++;
        }

        wait(timeout);
    }

    //方法让当前线程进入等待状态。直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法
    public final void wait() throws InterruptedException {
        wait(0);
    }

    //GC确定不存在对该对象的更多引用,回收时会调用该方法
    protected void finalize() throws Throwable { }
}

标签:阅读,void,Object,nanos,源码,timeout,public,native
From: https://www.cnblogs.com/LoginX/p/Login_X75.html

相关文章

  • ArrayList 底层结构和源码分析
    ArrayList基本介绍ArrayList实现了List接口。它可以存储包括null的任何类型的对象,允许重复元素。ArrayList在内部使用一个数组来存储元素,当元素数量超过数组容量时,ArrayList会自动重新分配更大的内部数组,并且将现有元素复制到新数组中。ArrayList基本等同于Vector,但是ArrayList......
  • 尚医通-day04【EasyExcel详细步骤】(内附源码)
    页面预览数据导出数据导入第01章-AlibabaEasyExcel1、EasyExcel介绍1.1、EasyExcel的作用数据导入:减轻录入工作量数据导出:统计信息归档数据传输:异构系统之间数据传输1.2、EasyExcel的特点快速:快速的读取excel中的数据。简洁:映射excel和实体类,让代码变的更加简......
  • 尚医通-day03【数据字典详细步骤】(内附源码)
    第01章-nacos和gateway的引入1、引入nacos1.1、启动nacos服务资料:资料>数据字典微服务>nacos-server-1.4.2.zip将资料中的nacos压缩包解压到非中文目录下,然后执行以下命令,单机启动nacosstartup.cmd-mstandalone访问:http://localhost:8848/nacos用户名密码:nacos/nacos1.......
  • 尚医通-day05【MongoDB详细步骤】(内附源码)
    第01章-MongoDB1、安装和启动(docker方式)1.1、拉取镜像dockerpullmongo:4.4.81.2、创建和启动容器dockerrun-d--restart=always-p27017:27017--nameatguigu_syt_mongo-v/atguigu/syt/mongo/data/db:/data/dbmongo:4.4.8--auth常见问题:以下IPv4问题会导致无法......
  • 尚医通-day07【医院管理详细步骤】(内附源码)
    页面预览列表页批量导入数据为了方便测试,我们可以将更多的医院信息数据批量导入到系统中。将资料中的json数据和测试用例复制到项目中,然后执行测试用例即可资料:资料>批量导入医院数据第01章-医院列表信息1、医院列表1.1、Controller在service-hosp中创建AdminHospitalCo......
  • 尚医通-day06【医院模拟系统接口详细步骤】(内附源码)
    第01章-医院系统1、业务功能描述资料:资料>医院模拟系统>尚医通API接口文档.docx1.1、平台方参考《尚医通API接口文档.docx》进行业务接口的开发,接收医院方的接口调用,将医院信息、科室信息、排班信息等数据存入MongoDB。1.2、医院方每个医院有自己的业务平台,需参考《尚医通AP......
  • 尚医通-day08【排班管理详细步骤】(内附源码)
    页面预览医院详情排班管理第01章-医院详情1、后端1.1、ControllerAdminHospitalController@ApiOperation(value="获取医院详情")@ApiImplicitParam(name="hoscode",value="医院编码",required=true)@GetMapping("/show/{hoscode}")publicResult......
  • 尚医通day01-【项目环境搭建和医院设置详细步骤】(内附源码)
    第01章-项目介绍1、课程介绍项目名称:尚医通预约挂号统一平台项目原型:https://www.114yygh.com北京市预约挂号统一平台项目技术栈:前后端分离后端技术:SpringBoot+SpringCloud+MyBatisPlus+MySQL+MongoDB+Redis+RabbitMQ+Docker+EasyExcel+API远程接口调......
  • 尚医通-day02【医院设置前端详细步骤】(内附源码)
    页面预览列表页面新增页面编辑页面第01章-项目中的路由1、引入路由1.1、路由模块中定义路由src/router/index.js关键代码importVuefrom'vue'//引入vue模块importRouterfrom'vue-router'//引入路由模块Vue.use(Router)//挂载路由功能到vue框架中exportc......
  • 尚医通day09-【用户平台搭建详细步骤】(内附源码)
    页面预览首页医院详情第01章-服务器端渲染和客户端渲染1、搜索引擎优化1.1、什么是搜索引擎优化SEO是网站为了获得更多的流量,对网站的结构及内容进行调整和优化,以便搜索引擎(百度,google等)更好抓取到网站的内容,提高自已的网站排名。1.2、搜索引擎工作流程1.3、简单的S......