程序员高频面试题及详细答案(真实面试口语版).docxVIP

  • 1
  • 0
  • 约5.11千字
  • 约 7页
  • 2026-09-14 发布于河北
  • 举报

程序员高频面试题及详细答案(真实面试口语版).docx

程序员高频面试题及详细答案(真实面试口语版)

一、Java基础核心面试题

1.==和equals的区别?

简单说,==比较的是内存地址,equals比较的是内容。

基本数据类型只能用==,直接比数值;引用类型用==是判断两个对象是不是同一个内存地址。

equals是Object的原生方法,默认和==效果一样,只是很多类比如String、Integer重写了这个方法,改成了对比对象内容。

日常开发里,字符串对比内容一律用equals,避免空指针的话,优先用常量字符串调用方法,比如abc.equals(str)。

2.String、StringBuilder、StringBuffer的区别?

String是不可变字符串,每次拼接、修改都会生成新对象,频繁操作非常耗性能。

StringBuilder和StringBuffer是可变字符串,不会新建对象。区别主要在线程安全:

StringBuffer加了synchronized锁,线程安全,但是性能低;StringBuilder无锁,线程不安全,性能高。

日常开发单线程场景全部用StringBuilder,多线程共享字符串场景才用StringBuffer。

3.重写和重载的区别?

重载是同一个类里,多个方法名一样,参数列表不一样(个数、类型、顺序不同),和返回值、修饰符无关,

文档评论(0)

1亿VIP精品文档

相关文档