- 1
- 0
- 约5.47千字
- 约 8页
- 2026-08-24 发布于河北
- 举报
Java工程师高频面试题及详细答案(真实面试版)
一、Java基础核心(高频必问)
1.说说==和equals的区别?
答案:
==是比较运算符,既可以比较基本数据类型,也可以比较引用数据类型。基本类型比较的是数值本身,引用类型比较的是对象的内存地址。
equals是Object类的方法,默认情况下和==效果一致,比较对象内存地址。但像String、Integer这类常用类,都重写了equals方法,重写后比较的是对象的内容值,不再比较地址。
日常开发中,字符串对比、对象内容对比一律用equals,基本数值对比用==。
2.String、StringBuilder、StringBuffer的区别?
答案:
1、String:字符串常量,不可变。每次拼接、修改字符串都会生成新的String对象,频繁操作会产生大量冗余对象,效率最低。
2、StringBuilder:字符串变量,可变、线程不安全,没有加锁,执行效率高,日常单线程字符串拼接优先使用。
3、StringBuffer:字符串变量,可变、线程安全,所有方法都加了synchronized锁,多线程场景下保证数据安全,但效率相对较低。
使用场景:少量字符串操作用String;单线程大量拼接用StringBuilder;多线程拼接用StringBuffer。
3.final、
原创力文档

文档评论(0)