java object 方法_Java中Object类常用的12个方法,你用过几个?
前言
Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的“老祖宗”。Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承所有 Object 类中的 public 方法。
先看下 Object 的类结构(快捷键:alt+7):
1. getClass 方法public final native Class> getClass();
final 方法、获取对象的运行时 class 对象,class 对象就是描述对象所属类的对象。这个方法通常是和 Java 反射机制搭配使用的。
2. hashCode 方法public native int hashCode();
该方法主要用于获取对象的散列值。Object 中该方法默认返回的是对象的堆内存地址。
3. equals 方法public boolean equals(Object obj) { return (this == obj);}
该方法用于比较两个对象,如果这两个对象引用指向的是同一个对象,那么返回 true,否则返回 false。一般 equals 和 == 是不一样的,但是在 Object 中两者是一样的。子类一般都要重写这个方法。
4. clone 方法protected native Object clone() throws CloneNotSupportedException;
该方法是保护方法,实现对象的浅复制,只有实现了 Cloneable 接口才可以调用该方法,否则抛出 CloneNotSupportedException 异常。
默认的 clone 方法是浅拷贝。所谓浅拷贝,指的是对象内属性引用的对象只会拷贝引用地址,而不会将引用的对象重新分配内存。深拷贝则是会连引用的对象也重新创建。
5. toString 方法public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
返回一个 String 对象,一般子类都有覆盖。默认返回格式如下:对象的 class 名称 + @ + hashCode 的十六进制字符串。
6. notify 方法public final native void notify();
final 方法,主要用于唤醒在该对象上等待的某个线程。
7. notifyAll 方法public final native void notifyAll();
final 方法,主要用于唤醒在该对象上等待的所有线程。
8. wait(long timeout) 方法public final native void wait(long timeout) throws InterruptedException;
wait 方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait() 方法一直等待,直到获得锁或者被中断。wait(long timeout) 设定一个超时间隔,如果在规定时间内没有获得锁就返回。欢迎大家关注我的公种浩【程序员追风】,文章都会在里面更新,整理的资料也会放在里面。
9. wait(long timeout, int nanos) 方法public final void wait(long timeout, int nanos) throws InterruptedException {
if (timeout
throw new IllegalArgumentException("timeout value is negative");
}
if (nanos 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos >= 500000 || (nanos != 0 && timeout == 0)) {
timeout++;
}
wait(timeout);
}
参数说明
timeout:最大等待时间(毫秒)
nanos:附加时间在毫秒范围(0-999999)
该方法导致当前线程等待,直到其他线程调用此对象的 notify() 方法或notifyAll()方法,或在指定已经过去的时间。此方法类似于 wait 方法的一个参数,但它允许更好地控制的时间等待一个通知放弃之前的量。实时量,以毫微秒计算,计算公式如下:1000000 * timeout + nanos
在所有其他方面,这种方法与 wait(long timeout) 做同样的事情。特别是 wait(0, 0) 表示和 wait(0) 相同。
10. wait 方法public final void wait() throws InterruptedException { wait(0);}
可以看到 wait() 方法实际上调用的是 wait(long timeout) 方法,只不过 timeout 为 0,即不等待。
11. finalize 方法protected void finalize() throws Throwable { }
该方法是保护方法,主要用于在 GC 的时候再次被调用,如果我们实现了这个方法,对象可能在这个方法中再次复活,从而避免被 GC 回收。
最后
欢迎大家一起交流,喜欢文章记得点个赞哟,感谢支持!
java object 方法_Java中Object类常用的12个方法,你用过几个?相关推荐
- java math 函数_Java中Math类常用函数总结
Java中比较常用的几个数学公式的总结: //取整,返回小于目标函数的最大整数,如下将会返回-2 Math.floor(-1.8): //取整,返回发育目标数的最小整数 Math.ceil() //四 ...
- java中math的方法_Java中Math类常用方法代码详解
近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新... public class Demo{ public static void mai ...
- java 通用对象_java中对所有对象都通用的方法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 覆盖equals时请遵守通用约定 我们知道equals要实现的是逻辑上的相等.站在数学的角度来看,两个事物相等的条件,有如下几个: 1.自反性:对于任何非 ...
- java properties 参数_Java中Properties 类的详细使用
我把你的头像,设置成我的名字,此刻你便与我同在. 我把你的名字,写进我的代码里面,以后,我的世界便存在着你. 一.Properties 类 Properties 类位于 java.util.Prope ...
- java file构造方法_Java中FileOutputStream类的常用方法
今天动力节点java学院小编将为大家分享Java中FileOutputStream类的常用方法,希望通过此文能够帮助到大家,下面就随小编一起看看Java中FileOutputStream类的常用方法都 ...
- java堆栈异常_Java中获得异常堆栈使用轨迹的方法是。
Java中获得异常堆栈使用轨迹的方法是. 答:fillinStack() 中国大学MOOC: 互联网金融品牌建设能增加客户对企业的依赖度,促使客户重复使用某个企业产品或服务,从而产生一定的客户黏性 答 ...
- java 当月最后一天_java中取得当月最后一天的四种方法
java中取得当月最后一天的四种方法 第一种,使用Calendar的roll方法,在限制某个日期字段不改变的形式下,改变其他日期字段的值. 第二种,使用Calendar的getActualMaximu ...
- java里break的使用方法_java中break,continue,return使用方法
break , continue 和 return 的使用方法: 1.break 的作用 a. 跳出当前循环: b. 但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环 ...
- java中string的方法_java中String类中的常用方法
@Test public void testToString2() { /** * 他会调用toString方法 他调用的其实是Object类中的toString方法 引用会隐式调用toStri ...
最新文章
- 虚拟机的操作系统的安装
- DRP问题集结(一)-Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory...
- java io nio aio_Java IO、NIO、AIO知识总结
- 线段树的数组大小下限及证明
- (GitHub标星6.9k)超详细的人工智能专家路线图,
- 十五、中文词向量训练二
- DWR的使用以及DWR中工具JS文件的使用
- python进阶(十七)正则json(上)
- 七步从AngularJS菜鸟到专家(6):服务
- 软件先行的英特尔,为开发者们带来了什么?
- [Python学习笔记][第八章Python异常处理结构与程序调试]
- C++中对string对象的初始化及赋值方式总结
- 新中大银色快车数据恢复
- 硬件开发过程简介(一)
- 东北人讲java_东北人,请你讲东北话(内附东北话速成)
- torch.cuda
- 吴裕雄--天生自然 诗经:声声慢·寻寻觅觅
- 今日学习在线编程题:竹鼠的白色季节
- 2021-05-24 BUG修改
- 宏颜获水: 百度ceo 李彦宏惨槽泼水,懵了!