JAVA常用api — Object详解
来源:互联网 发布:真人快打x没有网络链接 编辑:程序博客网 时间:2024/06/05 07:47
Object详解
Object类中的常用方法分别是:getClass() ; hashCode() ; equals(Object); toString(); notify(); notityAll(); wait(long); wait(long,int); wait(); finalize();
他们分别的作用如下:
1. getClass() :获取该对象的类类型,其返回类型为Class<?>类,常用语Java反射机制。
2.hashCode() : 返回对象的哈希码值,哈希码存在的好处很多,有查找的快捷性,例如HashMap或HashTable等均采用key的hashCode来确定其对象的存储位置;判断对象是否相同,如果两个对象相等,那么这两个对象计算出的哈希值也要相等,实际使用场景中我们采用equals来判断对象是否相等,如果我们自定义的类中重新写了equals方法,则也要同时重写掉hashCode方法。
另外,上面说的一句话:如果两个对象相等,则这两个对象的哈希值一定相等,这句话反过来说则不一定成立,如果两个对象的哈希值相等,那么这两个对象不一定相等。
3.equals(Object):用于比较两个对象是否相等。在Object中的equals方法的判断,仅当被比较的对象所指向的实例为同一个,即返回地址相同,则equals返回true,否则返回false。看过源码可以知道,这个比较实际上也就是object1==object2,和“==”达到的效果一样,但在实际场景中,很多类会根据实际需要去重写该方法,如常见的String便重写了该方法,切记如果重写了euqals方法,hashCode()方法也要一起重写。
4.clone() : 复制一个对象,官方注释中,给出了一个说明:x.clone() != x返回true;x.clone().getClass() == x.getClass()返回true,但不是一定的;x.clone().equals(x)返回true,但不是一定的;根据实际场景需要,我们可以重写clone()方法,但要需要实现Cloneable接口;另外,Object.clone()方法属于浅层复制,实际运用时一定要注意。
这里同时引申出了深层复制和浅层复制的概念。
5.toString() : Object中默认输出是类名@hashcode值。实际应用场景中,可根据实际情况确定是否需要重写该方法,可以对对象进行自定义的格式输出。
6.notify() :唤醒正在等待该对象锁的一个线程。
7.notifyAll() :唤醒正在等待该对象锁的所有进行。
8.wait() : 释放当前线程中该对象的对象锁,进入对象等待池,等待被唤醒;
注: notify()、notifyAll()、wait()方法需要在synchronized代码块中使用。
- JAVA常用api — Object详解
- Java常用类--Object详解
- java常用API中Object类
- Java常用API(一)Object
- 黑马程序员——常用API详解之Object、Scanner、String
- 常用API——Object,Scanner,String
- (20)Java学习笔记——常用对象API /Object类
- Java之常用API(Object、String、StringBuffer、StringBuilder)
- Java—Timer和TimerTask详解(常用API)
- HDFS常用的Java Api详解
- java的API/Object
- Java--API,Object类
- java常用类——Object类
- Java常用类--Object
- java常用类--object
- Java-API学习笔记---Object
- JAVA的API: Object类
- hibernate常用API详解
- Wannafly模拟赛3 贝伦卡斯泰露 【折半搜索+hash,状压dp】
- 欢迎使用CSDN-markdown编辑器
- C++与C#互转
- iOS开发之WKWebView怎么加载请求并且传参数
- 将数据写入SD卡
- JAVA常用api — Object详解
- xx.tld标签开发之权限管理标签开发
- 最小距离之和 CODEVS
- java中的四种访问控制修饰符
- 斐波那契数列Java编程题
- mysql 查看事务
- WIN7使用Anaconda配置tensorflow(研究生狗)
- ORACLE读取CSV文件时对CSV格式的要求
- Django返回html和js代码