Object类的常见方法总结
♧ Object类是比较特殊的类,它是所有类的父类。主要提供了11个方法(JDK 1.8为例):
/**
* native方法,用于返回当前运行时对象的Class对象,使用final关键字修饰,子类不允许进行重写
*/
public final native Class<?> getClass(); /**
* native方法,用于返回对象的哈希码值,主要应用于哈希表中,比如JDK中的HashMap集合类
*/
public native int hashCode(); /**
* 用于比较两个对象的内存地址是否相同,如果要进行自定义比较,需要对该方法进行重写,比如String类中的equals方法就是比较字符串是否相同
*/
public boolean equals(Object obj) {
return (this == obj);
} /**
* native方法,用于创建并返回当前对象的一个拷贝。一般情况下,对于任何对象x,表达式x.clone() != x为true;x.clone().getClass() == x.getClass()为true。Object本身没有重写Cloneable接口,所以不重写clone方法就进行调用的时候,会抛出异常。
*/
protected native Object clone() throws CloneNotSupportedException; /**
* 返回类的名字@实例的哈希码的十六进制字符串
*/
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
} /**
* native方法,并且不能重写,唤醒一个在此对象监视器上等待的线程(监视器相当于锁的概念)。如果存在多个线程在等待,只会任意唤醒一个
*/
public final native void notify(); /**
* native方法,并且不能重写,唤醒在此对象监视器上等待的所有线程
*/
public final native void notifyAll(); /**
* native方法,并且不能重写。暂停线程的执行。注意:sleep方法没有释放锁,而wait方法释放了锁,timeout是等待时间
*/
public final native void wait(long rimeout) throws InterrupteException; /**
* wait方法重载,多了参数nanos,表示额外的时间(以毫秒为单位,范围是0-999999)。所以超时的时间需要加上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 > 0) {
timeout++;
}
wait(timeout);
}
public final void wait() throws InterrupteException {
wait(0);
};
/**
* 实例被垃圾回收器回收的时候触发
*/
protected void finalize() throws Throwable {}
Object类的常见方法总结的更多相关文章
- Java基础知识强化26:Object类之hashCode()方法、getClass()方法
1. Object类的hashCode()方法,如下: public int hashCode():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的 ...
- 关于Object类下所有方法的简单解析
类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直接来看jdk的源码,开始我们的分析之路 ...
- 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 作为超 ...
- Object类中通用方法之:toString()方法
1.Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法 2.toString()方法即为Object类中定义的通用方法之一 3.平时我们如果在控制台直接打 ...
- [ 转载 ] Java基础10--关于Object类下所有方法的简单解析
关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ...
- Java中的Object类的toString()方法,equals()方法
Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...
- Java Object类的equals()方法
所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj) { retu ...
- String类的常见方法的使用案例
String类的常见方法的使用案例 //使用指定的字符串替换当前字符串中指定的内容 //将helloworld中的o替换为a String s="HelloWorld"; Stri ...
随机推荐
- win8.1默认输入法设置
1.右击左下角,选择控制面板 2.选择更改输入法 3.选择高级设置 4.在替代默认输入法,从下拉列表中选择自己已安装的输入法,比如搜狗拼音输入法,qq拼音输入法等其他输入法
- python 中的sum( )函数 与 numpy中的 sum( )的区别
一. python sum函数 描述: sum() 对序列进行求和 用法: sum(iterable[, start]) iterable:可迭代对象,例如,列表,元组,集合. start:指定相加的 ...
- PHP jquer网页打印插件 PrintArea
<!DOCTYPE html> <head> <meta charset="utf-8"> <meta http-equiv=" ...
- PHP 获取重复数组中 第二多的元素
$target = ["重复项目", "repeat", "repeat", "重复", "重复项目" ...
- oracle11g数据库安装采坑记录
第一处坑: 解决方案: 原文:https://blog.csdn.net/yhj198927/article/details/49178279 1.打开oracle的"Net Manager ...
- 剑指offer 面试题0:扎实的基础:即编程语言、数据结构和算法
编程语言: Q:如果写的函数需要传入一个指针,则是否需要为该指针加上const?把const加在指针不同的位置是否有区别? A:const是用来声明一个常量的,如果不想让一个值改变就应该加上const ...
- 爬虫-urllib3模块的使用
urllib3是一个功能强大,对SAP健全的 HTTP客户端,许多Python生态系统已经使用了urllib3. 一.安装 sudo pips install urllib3 二.创建PoolMana ...
- Openstack Ocata 公共服务端(三)
Openstack Ocata 公共服务端 mysql 安装: yum install mariadb mariadb-server mysql 安装过程省略 rabbit-server 安装包: # ...
- 【Linux】postfix大坑笔记
由于需要,想弄一个自动发送邮件的mailx或者sendmail 但是执行 echo "test" | mail -s "Worning mail !" xxxx ...
- kubernetes之为每个命名空间的pod设置默认的requests以及limits
一 为啥需要为命名空间里面添加pod添加默认的requests和limits? 通过前面的学习我们已经知道,如果节点上面的pod没有设置requests和limits,这些容器就会受那些设置了的控制 ...