java object 源码_java中Object类 源代码详解
packagejava.lang;public classObject {/*一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用。*/
private static native voidregisterNatives();/*对象初始化时自动调用此方法*/
static{
registerNatives();
}/*返回此 Object 的运行时类。*/
public final native Class>getClass();/*hashCode 的常规协定是:
1.在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
2.如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
3.如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。*/
public native inthashCode();public booleanequals(Object obj) {return (this ==obj);
}/*本地CLONE方法,用于对象的复制。*/
protected native Object clone() throwsCloneNotSupportedException;/*返回该对象的字符串表示。非常重要的方法*/
publicString toString() {return getClass().getName() + "@" +Integer.toHexString(hashCode());
}/*唤醒在此对象监视器上等待的单个线程。*/
public final native voidnotify();/*唤醒在此对象监视器上等待的所有线程。*/
public final native voidnotifyAll();/*在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。换句话说,此方法的行为就好像它仅执行 wait(0) 调用一样。
当前线程必须拥有此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用 notify 方法,或 notifyAll 方法通知在此对象的监视器上等待的线程醒来。然后该线程将等到重新获得对监视器的所有权后才能继续执行。*/
public final void wait() throwsInterruptedException {
wait(0);
}/*在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。*/
public final native void wait(long timeout) throwsInterruptedException;/*在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。*/
public final void wait(long timeout, int nanos) throwsInterruptedException {if (timeout < 0) {throw new IllegalArgumentException("timeout value is negative");
}if (nanos < 0 || nanos > 999999) {throw newIllegalArgumentException("nanosecond timeout value out of range");
}if (nanos >= 500000 || (nanos != 0 && timeout == 0)) {
timeout++;
}
wait(timeout);
}/*当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。*/
protected void finalize() throwsThrowable { }
}
java object 源码_java中Object类 源代码详解相关推荐
- java list 移除_java 中List删除实例详解
java 中List删除实例详解 1.循环删除List中的元素 public static void main(String[] args) { List t=new ArrayList(); for ...
- java compareto源码_java中compareTo源码解析(String类型)
官网API(JDK13): 先上结论: 1.计算compareTo两边字符串的总长度(length()) 2.求出总长度中的最小值 3.如果长度相等,比较ASCII值相同,返回0 4.如果长度不相同, ...
- Java集合源码系列(1)---- ArrayList详解
目录 属性 构造函数 无参构造函数 含参构造(int initialCapacity) 含参构造(Collection c) add方法 add(E e) add(int index, E eleme ...
- java aqs源码_java中AQS源码分析
AQS内部采用CLH队列.CLH队列是由节点组成.内部的Node节点包含的状态有 static final int CANCELLED = 1; static final int SIGNAL ...
- java数组排序源码_Java 数组工具类排序,最大值最小值等
public class ArrayUtils{ /** * 返回数组最大值 * * @param a * @return */ public static int max(int[] a){ // ...
- java 窗体 源码_Java制作MDI窗体源代码
由于实际需要做一个MDI窗体,百度里面找到一个不错的源代码给大家分享一下. import javax.swing.*; import java.awt.event.*; import java.awt ...
- java责任链模式_java中责任链模式详解和使用方法
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为 ...
- php str_replace 源码,PHP中str_replace函数的详解
在实际的程序开发中,执行字符串替换操作是一件非常经常的事,对str_replace函数的实用也会非常频繁. 这段时间在看<PHP和MySQL Web开发>一书看到str_replace讲解 ...
- Mybatis源码学习(三)SqlSession详解
前言 上一章节我们学习了SqlSessionFactory的源码,SqlSessionFactory中的方法都是围绕着SqlSession来的.,那么SqlSession又是什么东东呢?这一章节我们就 ...
最新文章
- c++ qt 编译问题求解答
- java编写脚本校验修改密码_java编写一个更改密码校验程序,有两个密码框,一个用于输入新密码,另一个请输入确认密码……...
- WIN7只能上QQ打不开网页,使用CMD输入netsh winsock reset
- discuz中,修改admin密码
- 视觉盛宴篇!推荐 12 个好用的 CSS 的开源项目,YYDS !
- python爬虫今日头条街拍美图开发背景_分析Ajax请求并抓取今日头条街拍美图:爬取详情页的url与实际页面上显示不符...
- 【STM32】DMA详解
- erp系统服务器怎么关机,服务器怎么设置自动关机
- 容器编排技术 -- Kubernetes JSONpath Support
- python lambda表达式及用法_Python:lambda表达式和yield关键字理解与使用讲解
- java kdj_基于Java语言开发的个性化股票分析技术随机指数[KDJ].doc
- mongoDB的配置以及运行
- 手机页面内容超出屏幕宽度时实现可拖拉滑动效果
- mysql数据库白羽_Android应用开发Android 友盟推送原理解析
- 图易服装PDM产品数据管理系统
- 利用gpu加速神经网络算法,外接gpu 训练神经网络
- 【R语言文本挖掘】:n-grams和相关性计算
- CSRF攻击的原理和spring security对CSRF攻击的解决方法
- 其实真正做了自由职业者之后,才发现赚钱的方式太多了
- 中小企业管理升级的焦点——企业资源管理系统(ERP)
热门文章
- 【英语学习】【English L06】U03 House L4 How much is the rent?
- 【英语学习】【WOTD】senescence 释义/词源/示例
- php mysql bool_关于mysql api中my_bool的取值范围的问题
- kali破解WiFi时wlan0没有变wlan0mon_黑客入门干货:黑客使用 Aircrack-ng 破解 Wi-Fi 密码
- Java:求矩阵每行之和
- c语言生产者与消费者实验报告,生产者和消费者实验报告.doc
- 锂电池接线方法图_老电工整理的41条电路接线方法,每一条都值得收藏
- pip intsall 遇到的各种问题
- day4作业小代码练习
- 不用去验血,一查就能知道自己缺啥,一定要收好