后端开发经典面试题(含详细真实面试答案).docxVIP

  • 1
  • 0
  • 约5.68千字
  • 约 8页
  • 2026-09-01 发布于河北
  • 举报

后端开发经典面试题(含详细真实面试答案).docx

后端开发经典面试题(含详细真实面试答案)

一、Java基础高频题

1、==和equals的区别?

参考答案:

首先,==是运算符,equals是方法。

对于基本数据类型,==比较的是数值是否相等;基本类型没有equals方法。

对于引用数据类型,==比较的是两个对象的内存地址,判断是不是同一个对象;而equals默认也是比较地址,但像String、Integer这些类都重写了equals方法,重写后是比较对象内部的实际内容是否一致。

日常开发中,判断字符串、包装类内容是否一致,一律用equals,避免空指针的话可以把常量放前面。

2、String、StringBuilder、StringBuffer的区别?

参考答案:

String是不可变字符串,每次拼接、修改都会生成新的字符串对象,频繁操作会产生大量无用对象,占用内存、效率低。

StringBuilder和StringBuffer是可变字符串,底层是字符数组,修改不会新建对象。

核心区别在线程安全:StringBuffer所有方法都加了同步锁,线程安全但效率低;StringBuilder无锁,线程不安全,效率最高。

实际开发中,单线程场景统一用StringBuilder,多线程共享变量场景才用StringBuffer。

3、final、finally、finalize的区别

文档评论(0)

1亿VIP精品文档

相关文档