开发工程师面试试题及详细答案(实战无模板版).docxVIP

  • 2
  • 0
  • 约5.9千字
  • 约 9页
  • 2026-06-18 发布于河北
  • 举报

开发工程师面试试题及详细答案(实战无模板版).docx

开发工程师面试试题及详细答案(实战无模板版)

一、Java基础核心题(高频必考)

1、==和equals的区别是什么?日常开发怎么用?

参考答案:

首先分两种情况,基本类型和引用类型。

基本数据类型:==比较的是数值本身,没有equals方法,直接用==判断相等即可。

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

日常开发规范:

1)字符串、包装类比较内容,一律用equals;

2)常量放前面,比如abc.equals(str),避免空指针;

3)判断对象是否为同一个实例,才用==。

2、String、StringBuilder、StringBuffer的区别?业务场景怎么选?

参考答案:

1)String是不可变字符串,每次拼接都会生成新对象,频繁拼接会产生大量垃圾对象,效率很低;

2)StringBuilder可变、线程不安全、效率高;

3)StringBuffer可变、线程安全(方法加了synchronized)、效率偏低。

场景选择:

普通字符串赋值、少量拼接用String;单线程循环拼接、日志组装、参数拼接用StringBuilder;多线程共享场景下的字符串拼接才用StringBuffer,实际项目中St

文档评论(0)

1亿VIP精品文档

相关文档