- 1
- 0
- 约6.41千字
- 约 10页
- 2026-10-13 发布于河北
- 举报
Java后台开发高频面试题及详细答案(实战版)
一、Java基础核心
1.==和equals的区别?
答案:
1、==是运算符:
-基本数据类型:比较的是数值是否相等;
-引用数据类型:比较的是对象的内存地址是否相同。
2、equals()是Object类的方法:
-原生Object的equals本质和==一致,比较地址;
-String、Integer等包装类重写了equals方法,重写后比较的是对象内容值,不比较地址。
日常开发中,字符串对比必须用equals,基本类型用==。
2.String、StringBuilder、StringBuffer的区别?
答案:
1、String:不可变字符序列,底层是final修饰的char数组,每次拼接字符串都会生成新对象,频繁拼接效率极低。
2、StringBuilder:可变字符序列,线程不安全,无锁,拼接效率高,单线程场景首选。
3、StringBuffer:可变字符序列,线程安全,所有方法加了synchronized锁,多线程下不会出现并发问题,但性能比StringBuilder差。
实战总结:少量字符串拼接用String;频繁拼接单线程用StringBuilder,多线程用StringBuffer。
3.final、finally、finalize的区别?
答案:
1、final:修饰符
-修饰类
原创力文档

文档评论(0)