基础编程学习快乐每一天
首页
留言
Siddim.com
当前位置:
首页
>
编程知识库
>
后端开发知识
>
说说Object类下面有几种方法呢?
说说Object类下面有几种方法呢?
阅读
1
2019-10-26
今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的。
面试题
Object
有几种方法呢?
Java
语言是一种单继承结构语言,
Java
中所有的类都有一个共同的祖先。这个祖先就是
Object
类。
如果一个类没有用
extends
明确指出继承于某个类,那么它默认继承
Object
类。
Object
的方法我们在平时基本都会用到,但如果没有准备被忽然这么一问,还是有点懵圈的。
分析
Object
类是
Java
中所有类的基类。位于
java
.
lang
包中,一共有
13
个方法。如下图:
具体解答<br/>
1.Object()
这个没什么可说的,
Object
类的构造方法。(非重点)
2.registerNatives()
为了使
JVM
发现本机功能,他们被一定的方式命名。例如,对于
java
.
lang
.
Object
.
registerNatives
,对应的
C
函数命名为
Java
_
java
_
lang
_
Object
_
registerNatives
。
通过使用
registerNatives
(或者更确切地说,
JNI
函数
RegisterNatives
),可以命名任何你想要你的
C
函数。(非重点)
3.clone()
clone
()函数的用途是用来另存一个当前存在的对象。只有实现了
Cloneable
接口才可以调用该方法,否则抛出
CloneNotSupportedException
异常。(注意:回答这里时可能会引出设计模式的提问)
4.getClass()
final
方法,用于获得运行时的类型。该方法返回的是此
Object
对象的类对象/运行时类对象
Class
。效果与
Object
.
class
相同。(注意:回答这里时可能会引出类加载,反射等知识点的提问)
5.equals()
equals
用来比较两个对象的内容是否相等。默认情况下(继承自
Object
类),
equals
和==是一样的,除非被覆写(
override
)了。(注意:这里可能引出更常问的“
equals
与==的区别”及
hashmap
实现原理的提问)
6.hashCode()
该方法用来返回其所在对象的物理地址(哈希码值),常会和
equals
方法同时重写,确保相等的两个对象拥有相等的
hashCode
。(同样,可能引出
hashmap
实现原理的提问)
7.toString()
toString
()方法返回该对象的字符串表示,这个方法没什么可说的。
8.wait()
导致当前的线程等待,直到其他线程调用此对象的
notify
() 方法或
notifyAll
() 方法。(引出线程通信及“
wait
和
sleep
的区别”的提问)
9.wait(long timeout)
导致当前的线程等待,直到其他线程调用此对象的
notify
() 方法或
notifyAll
() 方法,或者超过指定的时间量。(引出线程通信及“
wait
和
sleep
的区别”的提问)
10.wait(long timeout, int nanos)
导致当前的线程等待,直到其他线程调用此对象的
notify
() 方法或
notifyAll
() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。(引出线程通信及“
wait
和
sleep
的区别”的提问)
11.notify()
唤醒在此对象监视器上等待的单个线程。(引出线程通信的提问)
12. notifyAll()
唤醒在此对象监视器上等待的所有线程。(引出线程通信的提问)
13.finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。(非重点,但小心引出垃圾回收的提问)
引申常见问题
equals
() 与 == 的区别是什么?
hashCode
() 和
equals
() 之间有什么联系?
wait
()方法与
sleep
()方法的区别
为什么重写了
equals
就必须重写
hashCode
HashMap
的实现原理
谈谈类加载机制
后续我们就这些常见问题一一做一些解答,当然,可能大部分人对这类问了八百遍的问题已经倒背如流了
最近三期
【
05
期】消息队列中,如何保证消息的顺序性?
【
06
期】单例模式有几种写法?
【
07
期】
Redis
中是如何实现分布式锁的?
以上数据来源于网络,如有侵权,请联系删除。
上一篇:
Redis中是如何实现分布式锁的?
下一篇:
说说hashCode() 和 equals() 之间的关系?
评论
(0)
提交
类别
基础编程学习
HTML
PHP
Python
编程知识库
后端开发知识
热门文章
Java并发中的同步容器与并发容器,你了解多少?
Innodb中的事务隔离级别和锁的关系,难倒一半面试者!
SpringBoot + minio实现分片上传、秒传、续传
面试官:你知道消息队列如何保证数据不丢失吗?
JAVA知识 Java8新特性
面试官:谈谈为什么要限流,有哪些限流方案?
说说动态代理与静态代理区别
面试官:思考Tomcat 类加载器为什么要违背双亲委派模型?
boot-admin 基于SpringBoot的后台权限管理系统,可作为脚手架,用于快速搭建项目
SpringBoot+Vue+App+硬件实现智能家居系统项目