美团Java后端高频面试题(含详细真实答案).docxVIP

  • 0
  • 0
  • 约6.35千字
  • 约 8页
  • 2026-06-25 发布于河北
  • 举报

美团Java后端高频面试题(含详细真实答案).docx

美团Java后端高频面试题(含详细真实答案)

一、Java基础核心(美团一面必问)

1.说说final、finally、finalize的区别

这三个完全是不同维度的关键字/方法,日常开发只用前两个,finalize基本废弃。

final是修饰符,可以修饰类、方法、变量:修饰类不能被继承,修饰方法不能重写,修饰变量赋值后不可修改(基本类型值不变,引用类型地址不变)。

finally是异常处理代码块,配合try-catch使用,无论正常执行还是抛异常,除非JVM直接退出,否则finally代码一定会执行,主要用来释放资源,比如关闭流、连接。

finalize是Object的空方法,JDK9之后彻底废弃。设计初衷是GC回收对象前触发,做资源收尾,但执行时机不确定、不保证执行,很容易导致内存泄漏,业务开发完全不用。

2.==和equals的区别?Integer缓存机制了解吗

==对于基本类型比较的是数值,对于引用类型比较的是内存地址。

equals是Object的方法,默认也是比较地址,像String、Integer这类包装类都重写了该方法,重写后是比较实际内容。

Integer缓存机制:Integer默认缓存-128~127之间的整数。这个区间内的数字,用new之外的方式创建对象,会直接复用缓存对象,所以==比较为true;超出这个范围会新建对象,地址不同,==为

文档评论(0)

1亿VIP精品文档

相关文档