中级Java工程师高频面试题(含真实口语化答案).docxVIP

  • 1
  • 0
  • 约5.11千字
  • 约 8页
  • 2026-08-26 发布于河北
  • 举报

中级Java工程师高频面试题(含真实口语化答案).docx

中级Java工程师高频面试题(含真实口语化答案)

一、Java基础核心(必考)

1.==和equals的区别?

答:==是比较运算符,基本数据类型比较的是数值本身,引用类型比较的是内存地址。

equals是Object的方法,默认实现和==一样,也是比较地址。但像String、Integer这些类重写了equals,重写后是比较内容值,不比较地址。

日常开发中,字符串比对一定要用equals,避免==导致的常量池地址问题踩坑。

2.String、StringBuilder、StringBuffer的区别?

答:

1、String是不可变字符串,每次拼接、修改都会生成新对象,频繁操作性能很差;

2、StringBuilder可变、线程不安全、效率高,日常开发单线程字符串拼接首选;

3、StringBuffer可变、加了synchronized锁、线程安全、效率低,现在基本很少用,只有老项目多线程拼接会见到。

总结:单线程用StringBuilder,多线程不用字符串拼接,尽量规避StringBuffer。

3.接口和抽象类的区别?实际项目怎么选?

答:

抽象类:有构造方法,可以有成员变量、普通方法、抽象方法,是单继承,偏向于模板定义,复用代码。

接口:没有构造方法,jdk8之前只有抽象方法,jdk8有默认方法、静态方法,jdk9

文档评论(0)

1亿VIP精品文档

相关文档