网站首页 > java教程 正文
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-10-19 Python 中赋值、浅拷贝、深拷贝的区别是什么?
- 2024-10-19 Java 对象拷贝原理剖析(java 对象拷贝原理剖析)
- 2024-10-19 认识Object类和深浅拷贝!(阐述object.assign的用法,深拷贝与浅拷贝的区别?)
- 2024-10-19 三面“有赞”Java岗斩获offer:Spring+JVM+并发锁+分布式+算法
- 2024-10-19 谈谈 Java 开发中的对象拷贝(java对象拷贝工具类)
- 2024-10-19 深入浅出Java中的clone克隆方法,写得也太棒了
- 2024-10-19 深拷贝和浅拷贝之list、dataframe
- 2024-10-19 对象拷贝java 浅谈(java对象的拷贝)
- 2024-10-19 Java克隆对象需要知道的事(java克隆的作用)
- 2024-10-19 面试官问:什么是浅拷贝和深拷贝?(浅拷贝与深拷贝区别)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)