马士兵全套Java面试高频试题(口语化详细答案).docxVIP

  • 1
  • 0
  • 约1.08万字
  • 约 14页
  • 2026-07-25 发布于河北
  • 举报

马士兵全套Java面试高频试题(口语化详细答案).docx

马士兵全套Java面试高频试题(口语化详细答案)

一、Java基础模块(必考10题)

1、==和equals()的区别是什么?

答:先说简单结论,==比较的是内存地址,equals默认情况下和==一样,重写之后比较的是内容。

基础数据类型用==,直接比对数值大小;引用数据类型用==,比对的是两个对象在堆内存中的地址,判断是不是同一个对象。

equals是Object类的原生方法,原始底层就是returnthis==obj。像String、Integer这类常用类,官方都重写了该方法,重写后不再比对地址,直接比对对象内部的数据内容。日常开发中,判断字符串内容是否相等,必须用equals。

2、final、finally、finalize的区别?

答:三个东西毫无关联,只是名字相似,各自作用完全不同:

1.final:修饰关键字。修饰变量就是常量,赋值后不能二次修改;修饰方法不能被重写;修饰类不能被继承。

2.finally:属于异常处理机制。搭配try-catch使用,代码一定会执行(唯一例外:执行前调用System.exit(0)直接退出JVM),一般用来关闭流、释放数据库连接这类收尾资源。

3.finalize:Object类的废弃方法。JDK9之后直接废弃,原本作用是GC回收对象前,让开发者自定义回收逻辑,官方不推荐使用,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档