今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的。

面试题

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

  • 谈谈类加载机制

后续我们就这些常见问题一一做一些解答,当然,可能大部分人对这类问了八百遍的问题已经倒背如流了。

面试官:问点基础,说说Object类下面有几种方法呢?相关推荐

  1. 面试官问:能否模拟实现JS的call和apply方法

    写于2018年11月30日,发布在掘金上阅读量近一万,现在发布到微信公众号申明原创.相对比较基础的知识,虽然日常开发可能用得比较少,各种源码中有很多call和apply,需要掌握. 前言 这是面试官问 ...

  2. 面试官问:你讲讲分布式事务问题的几种方案?

    面试题 1.分布式事务了解吗? 2.你们是如何解决分布式事务问题的? 面试官心理分析 只要聊到你做了分布式系统,必问分布式事务,你对分布式事务一无所知的话,确实会很坑,你起码得知道有哪些方案,一般怎么 ...

  3. c++ 实现一个object类_说说Object类下面有几种方法呢?

    欢迎关注头条号:Java小野猫 今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的. 面试题 Object有几种方法呢? Java语言是一种单继承结构语言,Java ...

  4. 【08期】说说Object类下面有几种方法呢?

    今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的. 面试题 Object有几种方法呢? Java语言是一种单继承结构语言,Java中所有的类都有一个共同的祖先.这 ...

  5. Object类中的五种方法

    clone() Object类源码:protected native Object clone() throws CloneNotSupportedException; 这里有个问题:为什么Sun公司 ...

  6. 当面试官问这些基础的Python问题时,竟然还有80%的人不会!

    怎样才能开始一个交互式解释器的会话? 在Windows下可以通过点击开始按钮,选择"程序",点击"Python",然后选择"Python(comman ...

  7. 面试官问:JS的this指向

    写于2018年12月25日,发布在掘金上阅读量近一万,现在发布到微信公众号申明原创. 前言 这是面试官问系列的第四篇,旨在帮助读者提升JS基础知识,包含new.call.apply.this.继承相关 ...

  8. 面试官问:能否模拟实现JS的bind方法(高频考点)

    可以点击上方的话题JS基础系列,查看往期文章 写于2018年11月21日,发布在掘金阅读量1.3w+ 前言 这是面试官问系列的第二篇,旨在帮助读者提升JS基础知识,包含new.call.apply.t ...

  9. 面试官问:能否模拟实现JS的new操作符(高频考点)

    可以点击上方的话题JS基础系列,查看往期文章 这篇文章写于2018年11月05日,new模拟实现,Object.create是面试高频考点,之前发布在掘金有近2万人阅读,现在发布到公众号声明原创. 1 ...

  10. obj: object是什么意思_面试官问你JavaScript基本类型时他想知道什么?

    本文原载于SegmentFault专栏"前端小将" 整理编辑:SegmentFault 面试的时候我们经常会被问答js的数据类型.大部分情况我们会这样回答包括: 1.基本类型(值类 ...

最新文章

  1. Android开发者指南(18) —— Web Apps Overview
  2. 分数等级_志愿填报丨填报公办普通高中志愿,分数成绩和等级成绩均需关注
  3. C语言程序模拟银行输入密码,模拟银行输入密码--源码
  4. 使用 Solid 私有化存储 IPFS 文件哈希值
  5. “算法”的茧房,如何破局?
  6. 【HTML+CSS】(2)CSS Sprite雪碧图
  7. 20210612:力扣第244周周赛题解(上)
  8. Rust基础概念之数据类型
  9. Rainmeter雨滴天气-(永不过时版通过获取网页数据实现)
  10. 跟着【莫烦python】学习神经网络框架TensorFlow和Pytorch学习笔记
  11. Matplotlib绘制动图
  12. postgresql表复制
  13. 超链接一般有两种表现形式_超链接有哪几种类型,各有什么作用
  14. 2094 找出 3 位偶数
  15. 操作ROS 的 msg文件 和 srv文件
  16. 使用vnc启动服务器candence相关问题
  17. 统计学习导论(ISLR)(四):分类算法
  18. Robot Framework应用——Mac环境下Robot Framework的安装及简单实用
  19. 人脸对齐(Face Alignment)
  20. Neo4j 系列(1) —— 初识 Neo4j

热门文章

  1. 实战Javascript:结合电商主界面实现轮播图和倒计时秒杀
  2. crawler4j源码学习(2):Ziroom租房网房源信息采集爬虫
  3. 论文笔记_SLAM_An Overview of SLAM_SPIE
  4. 机器学习课程笔记【三】广义线性模型(2)-构建广义线性模型
  5. Axis2生成wsdl的一种方法
  6. Tensorflow训练mnist数据集源代码解析
  7. hyperledger fabric超级账本java sdk样例e2e代码流程分析
  8. redis与mysql性能对比、redis缓存穿透、缓存雪崩
  9. Spring Data REST PATCH请求远程代码执行漏洞(CVE-2017-8046) 本地复现方法
  10. mysql分页优化方法