博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java.lang.Object
阅读量:4036 次
发布时间:2019-05-24

本文共 830 字,大约阅读时间需要 2 分钟。

万物皆对象。Object类是类层级结构的根, 是所有类的超类。所有的对象都要实现其中的方法。

Object类有十几个方法,除了toString(), equals(), finalize()三个方法外,其他的方法全是native方法,即在C代码中实现的的方法。

Object中的所有方法,除了registerNatives()方法是私有的,其他的方法都可以被子类重写。

1、toString()方法:

public String toString() {    return getClass().getName() + "@" + Integer.toHexString(hashCode());}

默认返回类名@地址

 

2、equals()方法:

public boolean equals(Object obj) {    return (this == obj);}

object的equals,JLS(java language specification)中是这么描述的

The method
equals
defines a notion of object equality, which is based on value,
not reference, comparison.

也就是比较的是值,而不是比较的引用。 这也验证了java的方法传参实际上是值传参,而不是引用传参。

子类重新equals方法的时候,需要注意,要同时重写hashCode方法,因为在java规范的公共契约里面规定了,相同的对象一定是具有相同的hashcode。不过额外提一句,就是具有相同hashcode的对象未必是同一个对象。

 

3、finalize()方法:

是垃圾回收时,jvm触发的对象销毁前执行的方法。子类可以重写这个方法来指定对象销毁时要执行的内容,但是一般不建议改写。如果改写不好,会影响垃圾回收效率,可能会导致无法回收或者回收缓慢而造成内存溢出的情况。

转载地址:http://kqcdi.baihongyu.com/

你可能感兴趣的文章
uboot start.s文件分析
查看>>
没有路由器的情况下,开发板,虚拟机Ubuntu,win10主机,三者也可以ping通
查看>>
本地服务方式搭建etcd集群
查看>>
安装k8s Master高可用集群
查看>>
忽略图片透明区域的事件(Flex)
查看>>
忽略图片透明区域的事件(Flex)
查看>>
AS3 Flex基础知识100条
查看>>
Flex动态获取flash资源库文件
查看>>
flex中设置Label标签文字的自动换行
查看>>
Flex 中的元数据标签
查看>>
flex4 中创建自定义弹出窗口
查看>>
01Java基础语法-11. 数据类型之间的转换
查看>>
01Java基础语法-13. if分支语句的灵活使用
查看>>
01Java基础语法-15.for循环结构
查看>>
01Java基础语法-16. while循环结构
查看>>
01Java基础语法-17. do..while循环结构
查看>>
01Java基础语法-18. 各种循环语句的区别和应用场景
查看>>
01Java基础语法-19. 循环跳转控制语句
查看>>
Django框架全面讲解 -- Form
查看>>
socket,accept函数解析
查看>>