关于java:面试官问点基础说说Object类下面有几种方法呢

5次阅读

共计 1615 个字符,预计需要花费 5 分钟才能阅读完成。

明天说一道根底题型,不过很多人会疏忽或者至多说不残缺,然而面试时被问到的几率还是很大的。

面试题

Object 有几种办法呢?

Java 语言是一种单继承构造语言,Java 中所有的类都有一个独特的先人。这个先人就是 Object 类。

如果一个类没有用 extends 明确指出继承于某个类,那么它默认继承 Object 类。

Object 的办法咱们在平时根本都会用到,但如果没有筹备被突然这么一问,还是有点懵圈的。

剖析

Object 类是 Java 中所有类的基类。位于 java.lang 包中,一共有 13 个办法。如下图:
在这里插入图片形容
具体解答

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 的实现原理

谈谈类加载机制

后续咱们就这些常见问题一一做一些解答,当然,可能大部分人对这类问了八百遍的问题曾经滚瓜烂熟了。

正文完
 0