- 3
- 0
- 约7.2千字
- 约 9页
- 2026-07-03 发布于河北
- 举报
2026阿里Java后端面试真题(含接地气详细答案)
一、Java基础模块(高频必考)
1、简述String、StringBuilder、StringBuffer的区别,日常开发如何选型?
参考答案:
1)底层原理:String底层是被final修饰的char数组(JDK9后改为byte数组),一旦初始化就不能修改,每次字符串拼接都会生成新对象;另外两个类底层数组可变,拼接直接修改原对象,不会频繁创建新对象。
2)线程安全:StringBuffer所有方法都加了synchronized锁,线程安全;StringBuilder无锁,线程不安全;String本身不可变,天然线程安全。
3)性能:单线程场景下StringBuilder性能远高于另外两个;StringBuffer因为加锁,多线程下性能偏低;String频繁拼接场景性能最差。
4)选型:定义固定字符串直接用String;单线程频繁拼接字符串优先StringBuilder;多线程并发拼接场景才用StringBuffer,实际业务里这个场景极少。
2、==和equals的区别?Integer包装类有什么缓存陷阱?
参考答案:
1)==:基本数据类型比较的是数值本身;引用类型比较的是对象内存地址,判断是不是同一个对象。
2)equals:Object原生方法本质和==一样,比较内存地址;像String、Integer这类类
原创力文档

文档评论(0)