Object类
2018-07-09 13:28:57来源:博客园 阅读 ()
A.所属包
java.lang
B.声明
public class Object
C.概述
是所有类的父类
D.构造方法:
Object()
E.常用成员方法
a.protected Object clone()
创建并返回该对象的一个副本,需要实现Cloneable接口重写此方法
b.public boolean equals(Object obj)
判断两个对象地址值是否相等,如果子类想要判断内容是否相等需要重写此方法
c.protected void finalize()
当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用此方法回收对象,但回收时间不确定
d.public Class<?> getClass()
返回该对象所在类的字节码文件对象
e.public int hashCode()
返回该对象的哈希码值
f.public String toString()
返回该对象的字符串表示,即:
this.getClass().getName()+"@"+Integer.toHexString(this.hashCode())
F.注意事项
a.Object类时所有类的父类
b.子类如果没有重写equals()方法默认比较的是地址值
c.直接输出一个对象名,其实默认是调用该对象所在类的toString()方法
d.==和equals的区别?
==用于基本类型是比较值,用于引用类型是比较地址值
euqals只能用于引用类型,默认比较地址值
e.关于hashCode()与equals()
1.如果两个对象equals,Java运行时环境会认为他们的hashcode一定相等
2.如果两个对象不equals,但hashcode可能相等
3.如果两个对象hashcode相等,但不一定equals
4.如果两个对象hashcode不相等,肯定不equals
G.示例
class MyObject implements Cloneable//这里实现了Cloneable接口,重写了clone()方法
{
protected Object clone()
{
return this;
}
}
class MyObjectTest
{
public static void main(String[] args)
{
MyObject mobj1=new MyObject();
MyObject mobj2=new MyObject();
System.out.println(mobj1==mobj1.clone());//true
System.out.println(mobj1.equals(mobj2));//false
System.out.println(mobj1.hashCode());//697960108(每个人可能相同)
System.out.println(mobj1.toString());//object.MyObject@299a06ac(每个人可能不相同)
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:高并发之应用的拆分
- JAVA中常用的类 2020-06-05
- java.lang.String 的 + 号操作到底做了什么? 2020-05-22
- org.apache.jasper.JasperException: java.lang.NullPointer 2020-05-21
- springboot配置activeMQ传输object类型的消息时:classnotfo 2020-05-16
- java.lang.IllegalStateException: getOutputStream() has a 2020-05-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash