- 0
- 0
- 约5.79千字
- 约 5页
- 2026-05-20 发布于河北
- 举报
上海中软国际面试题及详细答案
一、Java开发岗(校招/社招通用,上海中软高频)
(一)基础必考题(每次面试必问,侧重实操)
1.面试题:String、StringBuffer和StringBuilder的区别?实际开发中怎么选?
详细答案:核心就3个区别,记牢就能答好。第一是可变性,String是不可变的,每次拼接、修改都会新生成一个字符串对象,比如Stringa=a;a+=b,其实是新创建了ab对象,原来的a就成了垃圾;而StringBuffer和StringBuilder是可变的,直接在自身对象上修改,不会产生多余垃圾。第二是线程安全,StringBuffer加了synchronized锁,多线程下用不会出问题,StringBuilder没加锁,线程不安全。第三是效率,StringBuilder最高,StringBuffer次之,String最低。
实际开发里,单线程场景比如方法里临时拼接字符串、接口参数处理,就用StringBuilder,效率高;多线程场景比如并发请求下的日志拼接、全局缓存的字符串处理,就用StringBuffer;如果是固定不变的字符串,比如常量、配置项,直接用String就行,不用多此一举用后面两个。比如我们项目里,接口返回的固定提示语用String,循环拼接用户ID用StringBuilder,多线程异步日志拼接用StringBuff
原创力文档

文档评论(0)