Java外包面试真题(含详细接地气答案).docxVIP

  • 2
  • 0
  • 约5.38千字
  • 约 8页
  • 2026-07-27 发布于河北
  • 举报

Java外包面试真题(含详细接地气答案).docx

Java外包面试真题(含详细接地气答案)

一、Java基础高频题

1.==和equals的区别?项目中什么时候踩过坑?

答案:

先说核心区别:==是比较内存地址,基本类型比数值,引用类型比对象地址;equals是方法,默认也是比地址,重写后比内容。

日常开发最常用的就是String,String重写了equals,所以只比对字符串内容。

实际踩坑(外包常问):

之前做需求时,直接用==判断两个newString的字符串,结果明明内容一样却返回false。因为new出来的对象地址不同,后面统一改成equals判断字符串、包装类内容对比,同时养成习惯把常量放前面,比如xxx.equals(str),避免空指针。

2.String、StringBuilder、StringBuffer区别?业务怎么选?

答案:

1、String:不可变,每次拼接都会生成新对象,频繁拼接会产生大量垃圾对象,效率很低。

2、StringBuilder:可变、线程不安全,没有锁,拼接效率最高。

3、StringBuffer:可变、线程安全,加了synchronized锁,多线程下不会并发问题,但性能差一点。

业务选型:

绝大多数业务场景(接口、单线程数据处理)直接用StringBuilder;只有老项目多线程拼接字符串的场景才用StringBuffer,新项

文档评论(0)

1亿VIP精品文档

相关文档