Java面试题:final和Object类常见的方法
final 关键字的理解
final关键字主要用在三个地方:变量、方法、类。
对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
当用final修饰一个类时,表明这个类不能被继承。final类中的所有成员方法都会被隐式地指定为final方法。
使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的Java版本已经不需要使用final方法进行这些优化了)。类中所有的private方法都隐式地指定为final。
Object类的常见方法总结
Object类是一个特殊的类,是所有类的父类。它主要提供了以下11个方法:
public final native Class<?> getClass()//native方法,用于返回当前运行时对象的Class对象,使用了 final关键字修饰,故不允许子类重写。
public native int hashCode() //native方法,用于返回对象的哈希码,主要使用在哈希表中,比如JDK中的 HashMap。 public boolean equals(Object obj)//用于比较2个对象的内存地址是否相等,String类对该方法进行了重写用户 比较字符串的值是否相等。
protected native Object clone() throws CloneNotSupportedException//naitive方法,用于创建并返回 当前对象的一份拷贝。一般情况下,对于任何对象 x,表达式 x.clone() != x 为true,x.clone().getClass() == x.getClass() 为true。Object本身没有实现Cloneable接口,所以不重写clone方法并且进行调用的话会发生 CloneNotSupportedException异常。
public String toString()//返回类的名字@实例的哈希码的16进制的字符串。建议Object所有的子类都重写这个方法。
public final native void notify()//native方法,并且不能重写。唤醒一个在此对象监视器上等待的线程(监视 器相当于就是锁的概念)。如果有多个线程在等待只会任意唤醒一个。
public final native void notifyAll()//native方法,并且不能重写。跟notify一样,唯一的区别就是会唤醒 在此对象监视器上等待的所有线程,而不是一个线程。
public final native void wait(long timeout) throws InterruptedException//native方法,并且不能 重写。暂停线程的执行。注意:sleep方法没有释放锁,而wait方法释放了锁 。timeout是等待时间。
public final void wait(long timeout, int nanos) throws InterruptedException//多了nanos参数, 这个参数表示额外时间(以毫微秒为单位,范围是 0-999999)。 所以超时的时间还需要加上nanos毫秒。
public final void wait() throws InterruptedException//跟之前的2个wait方法一样,只不过该方法一直等待,没有超时时间这个概念protected void finalize() throws Throwable { }//实例被垃圾回收器回收的时候触发的操作。
扫码免费领取Java面试题
Java面试题:final和Object类常见的方法相关推荐
- JAVA进阶教学之(Object类的toString方法)
1.toString public String toString() 返回对象的字符串表示形式.总的来说,这 toString方法返回一个字符串,"以文本方式表示"这个对象.其结 ...
- Java学习篇11——关于Object类的toString方法
写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书.第一本:<Java 编程指南>,[美] Budi Kurniawan 著,闫斌 贺莲 译.第二本:<第一行代码 ...
- java面试题27 java中下面哪些是Object类的方法()
java面试题27 java中下面哪些是Object类的方法() A notify() B notifyAll() C sleep() D wait() 蒙蔽树上蒙蔽果,蒙蔽树下你和我.遇到这种题,我 ...
- Java常见面试题—Object 类中的方法
Object 类中的方法 Object() 默认构造方法 clone() 创建并返回此对象的一个副本. equals(Object obj) 指示某个其他对象是否与此对象"相等". ...
- 《Java 核心技术卷1 第10版》学习笔记------Object类的 equals 方法
Object 简述 Object 类是 Java 中所有类的始祖, 在 Java 中每个类都是由它扩展而来的. 在 Java 中, 只有基本类型 ( primitive types) 不是对象, 例如 ...
- [ 转载 ] Java基础10--关于Object类下所有方法的简单解析
关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ...
- Java基础Object类的equals方法
关于Object类中的equals方法 1.equals方法的源代码 public boolean equals(Object obj) {return (this == obj);}以上这个方法是O ...
- Java重写object类的equals方法
1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回tru ...
- java——API—— Object类——重写equals方法
重写Object类的equals方法 如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法. Object类的equals方法,默认比较的是两个 ...
最新文章
- Usage and Idioms——Categories
- 人工智能即将冲击与改变现有的医疗方式
- 转载一个关于JavaScript几种继承方法的总结
- eclipse 工程复制
- 一个仿沙漏效果的自定义view(贝瑟尔曲线实现)
- 三月苏州健康小贴士!!!健康生活从我做起
- html 文本框 初始化,Flutter 文本框初始化时显示默认值
- linux编写脚本的基本方法
- Eclipse安装中文简体语言包(官方下载安装教程)
- sublime text3 最新注册码
- Java、三角形类Triangle
- allure定制测试报告logo
- 笑脸检测笑脸识别微笑识别大笑识别
- cad打开卡死_在打开cad文件的时候会出现死机的状态
- 一个人写一个集群:基于GRPC的golang微服务框架iogo(grpc/protobuf/etcd/freetoo/码客 卢益贵)
- UE4 快捷键--引擎篇
- 流量并不仅仅只是存在于互联网时代,更重要的是一种模式
- vue 讯飞在线文字合成语音,文字转成语音
- 计算机桌面文件为何不能剪贴,告诉你电脑不能复制粘贴怎么办
- 游戏玩家的图形显示设置指南(10)(The Gamer's Graphics Display Settings Guide)
热门文章
- 不会框架不要紧,我带你自定义框架
- 44 The shopping psychology 购物心理
- CF1110G Tree-Tac-Toe 博弈论、构造
- 09-Python入门学习-函数基础与参数
- js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...
- python学习笔记——守护进程
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(四) 添加表情、群聊功能...
- Django Model出现的中文问题
- 动态加载js文件 document.createElement
- python---之[::-1]