- 1
- 0
- 约5.61千字
- 约 8页
- 2026-09-01 发布于河北
- 举报
后端编程高频面试题及详细答案(真实职场版)
一、Java基础面试题(高频必问)
1.==和equals的区别是什么?
这是面试最基础的题,核心就两点,分基本类型和引用类型:
1、基本数据类型:==比较的是数值本身,基本类型没有equals方法。
2、引用数据类型:==比较的是内存地址,也就是判断是不是同一个对象;equals是比较对象内容。
举个实际场景:Stringa=123,Stringb=newString(123)。a==b是false,因为地址不一样;a.equals(b)是true,因为字符串内容相同。
补充:String、Integer这些包装类都重写了equals方法,默认比较内容;如果是自己写的实体类,不重写equals,默认还是比较对象地址。
2.String、StringBuilder、StringBuffer的区别?
日常开发区分核心就三个点:可变性、线程安全、性能
1、String:不可变字符串,每次拼接、修改都会生成新对象,频繁操作字符串非常耗内存,性能最差。适合少量固定字符串。
2、StringBuilder:可变字符串,线程不安全,没有锁,性能最高。日常开发字符串拼接优先用这个,绝大多数单线程场景都够用。
3、StringBuffer:可变字符串,方法加了synchronized锁,线程安全
原创力文档

文档评论(0)