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,而且在其他版本中也极不推荐使用,所以不做介绍了。
Object类上的方法的更多相关文章
- 关于Object类下所有方法的简单解析
类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直接来看jdk的源码,开始我们的分析之路 ...
- Object类中通用方法之:toString()方法
1.Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法 2.toString()方法即为Object类中定义的通用方法之一 3.平时我们如果在控制台直接打 ...
- [ 转载 ] Java基础10--关于Object类下所有方法的简单解析
关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ...
- Java Object类的equals()方法
所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj) { retu ...
- Java基础知识强化26:Object类之hashCode()方法、getClass()方法
1. Object类的hashCode()方法,如下: public int hashCode():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的 ...
- object类的equals方法简介 & String类重写equals方法
object类中equals方法源码如下所示 public boolean equals(Object obj) { return this == obj; } Object中的equals方法是直接 ...
- Java Object类及其equals方法
基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超 ...
- Java中的Object类的toString()方法,equals()方法
Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...
- Object类及其equals()方法
== : 1.基本数据类型:根据基本数据类型的值判断是否相等,相等返回true,反之返回false 注意:两端数据类型可以不同, 在不同的情况下,也可以返回true 2.引用数据类型:Object ...
随机推荐
- 使用 X-Frame-Options 防止被iframe 造成跨域iframe 提交挂掉
Refused to display 'http://www.***.com/login/doLogin.html' in a frame because it set 'X-Frame-Optio ...
- Linux C++ - IP地址转换函数
1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t nt ...
- 译:Microsoft/ReactXP 简介
在Github的Microsoft项目中发现一个名为ReactXP的项目,这是一个由Skype团队开发的,用于进行Web及跨平台APP开发的库(建立在React Js 和 ReactNative之上) ...
- C#读取excel文件,并生成json
这次介绍两种方法,第一种是安装AccessDatabaseEngine,第二种是利用Npoi读取excel 一.第一种利用AccessDatabaseEngine进行读取excel文件 1.安装Acc ...
- 华为交换机 查看 ip和mac对应关系
IPv4: display arp IPv6: display ipv6 neighbors
- C++ malloc 和 new 的函数说明
malloc 和 new 一些不同点 1. 数组变量的申请 int *p = (int *) malloc (sizeof(int) * 5); if(p==NUILL) return; free ...
- 2017 NAIPC A:Pieces of Parentheses
my team solve the problem in the contest with similar ideathis is a more deep analysis The main idea ...
- sublime text 另一种对齐
效果如下: http://sublime-text-unofficial-documentation.readthedocs.org/en/latest/extensibility/plugins.h ...
- poj3026
Borg Maze Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12952 Accepted: 4227 Descri ...
- Centos7安装Chacha20加密算法 (验证成功)
Centos7安装Chacha20加密算法 (验证成功) 有些程序会使用Chacha20加密算法,如果Centos7系统报错Exception: libsodium not found,则缺乏M2Cr ...