Object类上的方法
1.getClass:
public final native Class<?> getClass();
返回当前对象运行时的类的对象。
2.hashCode:
public native int hashCode();
这个方法是为哈希表这种数据结构提供支持的。(例如HashMap)
hashcode 的通用约定为:
1)在一个java应用中在同一个对象上调用多次hashCode方法应该返回同样的int结果。
但是int结果不必保持一致性在同一个java应用的两次执行中。
2)如果两个对象是相等的(equals方法返回true),则hashCode方法必须返回相同的int结果。
3)如果两个对象通过equals方法不相等,不要求他们的hashCode方法必须返回不同的int结果,但是
不同对象上返回不同的hashCode可以提高哈希表的性能(缩短链表的长度)。
3.equals:
public boolean equals(Object obj) {
return (this == obj);
}
4.clone:
protected native Object clone() throws CloneNotSupportedException;
注意两点:第一此方法是protected,只有子类可以调用;第二,子类必须实现Cloneable接口,不然此方法会抛出CloneNotSupportedException异常。
所有数组默认为实现了Cloneable接口,所以数组都有clone方法。另外,这个方法是创建一个新的对象,并且使用被拷贝的对象的属性值来初始化新对象的属性。
而并不是将属性也拷贝一份。所以此方法是一个浅拷贝,并不是深拷贝。
5.toString:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
6.notify:
public final native void notify();
唤醒一个正在等待此对象上的线程。如果有多个等待线程,则任意挑选一个唤醒。具体挑选哪个依赖具体实现。
被唤醒的线程不会立即执行,直到当前线程释放对象上的锁。被唤醒的线程还要和其他想要获取锁的线程竞争锁。
此方法只能被已经获取对象上的锁的线程调用。
7.notifyAll:
public final native void notifyAll();
唤醒所有等待在此对象上的线程。其他和notify方法一样。
8.wait:
public final void wait() throws InterruptedException {
wait(0L);
}
导致当前线程进入等待状态直到被唤醒(notified或者interrupted),此方法和调用wait(0L, 0)效果一样。
public final native void wait(long timeoutMillis) throws InterruptedException;
9.finalize
此方法在java9中已经申明为Deprecated,而且在其他版本中也极不推荐使用,所以不做介绍了。
最新文章
- NLP学术组织、会与论文
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- 请让页面中的一个元素(10px*10px)围绕坐标(200, 300) 做圆周运动
- hdoj 5317 RGCDQ
- Why isn&#39;t there a SendThreadMessage function?
- DevExpress使用之ChartControl控件绘制图表(多坐标折线图、柱状图、饼状图)
- 第一节:Maven 下载,安装和配置
- 一种解决的方法:CGContextSaveGState: invalid context 0x0
- codevs 1213 解的个数(我去年打了个表 - -)
- PHP设计模式笔记七:观察者模式 -- Rango韩老师 http://www.imooc.com/learn/236
- [RxJS] Updating Data with Scan
- 初学github
- 201521123109 《java程序设计》第13周学习总结
- 从细菌GFF文件提取CDS序列并转换为氨基酸序列
- jQuery 安装
- winform文件筛选器
- Hive实现交叉二维分析的小语句
- MyBatis:自定义Mapper
- spring学习 八 面向切面编程(AOP)概述
- 【第四课】Linux的基础命令使用
热门文章
- wsdl 结构解析
- Mina集成Spring --- 在配置文件中配置sessionconfig
- Email feedback to product team about TFS and SharePoint Integration 2017.2.15
- 隐式等待-----Selenium快速入门(九)
- Meteor in Action(一)起步
- leetcode 90. 子集 II JAVA
- 配置国内的maven仓库
- iOS - 安全
- Python web后端接收到的json数据有前端格式的布尔值 true false
- android应用程序的混淆打包