java的object类有哪些⽅法_说说Object类下⾯有⼏种⽅法呢?今天说⼀道基础题型,不过很多⼈会忽略或者⾄少说不完整,但是⾯试时被问到的⼏率还是很⼤的。
⾯试题
Object有⼏种⽅法呢?
Java语⾔是⼀种单继承结构语⾔,Java中所有的类都有⼀个共同的祖先。这个祖先就是Object类。
java中常用的设计模式有哪些如果⼀个类没有⽤extends明确指出继承于某个类,那么它默认继承Object类。
Object的⽅法我们在平时基本都会⽤到,但如果没有准备被忽然这么⼀问,还是有点懵圈的。
分析
Object类是Java中所有类的基类。位于java.lang包中,⼀共有13个⽅法。如下图:
具体解答
1.Object()
这个没什么可说的,Object类的构造⽅法。(⾮重点)
为了使JVM发现本机功能,他们被⼀定的⽅式命名。例如,对于java.isterNatives,对应的C函数命名为
Java_java_lang_Object_registerNatives。
通过使⽤registerNatives(或者更确切地说,JNI函数RegisterNatives),可以命名任何你想要你的C函数。(⾮重点)
3.clone()
clone()函数的⽤途是⽤来另存⼀个当前存在的对象。只有实现了Cloneable接⼝才可以调⽤该⽅法,否则抛出CloneNotSupportedException异常。(注意:回答这⾥时可能会引出设计模式的提问)
final⽅法,⽤于获得运⾏时的类型。该⽅法返回的是此Object对象的类对象/运⾏时类对象Class。效果与Object.class相同。(注意:回答这⾥时可能会引出类加载,反射等知识点的提问)
5.equals()
equals⽤来⽐较两个对象的内容是否相等。默认情况下(继承⾃Object类),equals和==是⼀样的,除⾮被覆写(override)了。(注意:这⾥可能引出更常问的“equals与==的区别”及hashmap实现原理的提问)
6.hashCode()
该⽅法⽤来返回其所在对象的物理地址(哈希码值),常会和equals⽅法同时重写,确保相等的两个对象拥有相等的hashCode。(同样,可能引出hashmap实现原理的提问)
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的区别”的提问)
唤醒在此对象监视器上等待的单个线程。(引出线程通信的提问)
12. notifyAll()
唤醒在此对象监视器上等待的所有线程。(引出线程通信的提问)
13.finalize()
当垃圾回收器确定不存在对该对象的更多引⽤时,由对象的垃圾回收器调⽤此⽅法。(⾮重点,但⼩⼼引出垃圾回收的提问)
引申常见问题
equals() 与 == 的区别是什么?
hashCode() 和 equals() 之间有什么联系?
wait()⽅法与sleep()⽅法的区别
为什么重写了equals就必须重写hashCode
HashMap的实现原理
谈谈类加载机制
后续我们就这些常见问题⼀⼀做⼀些解答,当然,可能⼤部分⼈对这类问了⼋百遍的问题已经倒背如流了
最近三期
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论