网站首页 > 基础教程 正文
Object作为所有类的老父亲,子类都会继承所有 Object 类中的 public 方法。
1.registerNatives
让程序主动将本地方法链接到调用方,当Java程序需要调用本地方法时就可以直接调用,而不需要虚拟机再去定位并链接。本地方法是指方法带有native关键字,底层使用c实现的。
2.getClass
final方法,获得运行时类型class,class 对象就是描述对象所属类的对象。这个方法通常是和 Java 反射机制搭配使用的。效果与Object.class相同。
3.hashCode
用来返回其所在对象的物理地址(哈希码值),常会和equals方法同时重写,确保相等的两个对象拥有相等的hashCode。详情可以看我前面的帖子,hashcode与equals的区别联系
4.equals
用于比较两个对象,如果这两个对象引用指向的是同一个对象,那么返回 true,否则返回 false。该方法在没有被重写的时候就是比较引用地址,和‘==’一样,但是子类一般都要重写这个方法。会配合hashcode。
5.clone
该方法是保护方法,默认实现对象的浅复制,只有实现了 Cloneable 接口才可以调用该方法,否则抛出
CloneNotSupportedException 异常。默认的 clone 方法是浅拷贝。所谓浅拷贝,指的是对象内属性引用的对象只会拷贝引用地址,而不会将引用的对象重新分配内存。深拷贝则是会连引用的对象也重新创建。详情可以看我前面写的Java深拷贝和浅拷贝的区别是什么?
6.toString
返回一个 String ,一般子类可以重写来展示自己需要的信息。默认返回: class 名称 + @ + hashCode 的十六进制字符串。
7.wait
导致线程进入等待状态,直到它被其他线程通过notify()或者notifyAll唤醒。该方法只能在同步方法中调用。这里wait与sleep方法不同,sleep方法只是停止当前进程,但是不会释放当前的锁,而wait会把当前的锁也释放。详情:Object.wait()/notify()/notifyAll()详解
8.wait(long millis)
这里的参数是毫秒,也就是等待长达n毫秒,如果没有通知就超时返回。在等待时间过去后就直接重新获取锁,往后执行;但是在竞争条件下,都会等获取到锁了才可以往下执行。
9.void wait(long millis,int nanos)
导致线程进入等待状态,对于等待时间更细粒度的控制,可以达到毫秒。在等待时间过去后就直接重新获取锁,往后执行;但是在竞争条件下,都会等获取到锁了才可以往下执行
10.notify
final方法,随机选择一个在该对象上调用wait方法的线程,解除其阻塞状态。该方法只能在同步方法或同步块内部调用。
11.notifyAll
解除所有那些在该对象上调用wait方法的线程的阻塞状态。该方法只能在同步方法或同步块内部调用。
12.finalize
是保护方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。如果我们实现了这个方法,对象可能在这个方法中再次复活,从而避免被 GC 回收。
猜你喜欢
- 2024-11-13 Java:Java多线程接口和类 java多线程三种实现方法
- 2024-11-13 jdk源码学习(一):万物皆对象,解密java中所有对象的父类Object
- 2024-11-13 Java类和对象的概念 java类和对象的概念区别
- 2024-11-13 Java开发中常用的框架有哪些? java开发主流框架
- 2024-11-13 Java引用数据类型 Java引用数据类型是什么意思
- 2024-11-13 c#入门教程(二十七)object类型 c# object reference not set
- 2024-11-13 70分享(4):关于Java中的类 java常用的类和方法
- 2024-11-13 从JVM层面带你分析Java的Object类源码第二部分
- 2024-11-13 JAVA你可能不知道的事——继承&抽象类
- 2024-11-13 Java,Objects,常用操作,判空、equals、compare、hash等的使用
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)