java面试题-String、StringBuffer、StringBuilder区别

news/2025/1/11 0:53:31/

远离八股文,面试大白话,通俗且易懂

看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。

java面试题汇总-目录-持续更新中

 面试官:String和StringBuffer有什么区别?

这是原题,后来查了一些博客,总结出来的就是以现在的机器配置,String和StringBuffer性能差别并不是特别大,可以说忽略不计,但是特定的场景下肯定会有效率的差别。

回答:

1.操作字符串的类有:String、StringBuffer、StringBuilder。

2.String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。

3.而StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

(tips:想要安全就必须牺牲效率)

举例:如果你要在一个非常大的循环里面(比如说循环一万次),然后针对一个字符串进行不断的拼接。这时候如果使用的是String就意味着每次拼接都会生成一个新的对象,也就是一万个,而StringBuffer和StringBuilder就不会,他们只会在自己原有的对象基础上扩充空间。


http://www.ppmy.cn/news/1270929.html

相关文章

基于YOLOv7算法的高精度实时水果目标检测识别系统(PyTorch+Pyside6+YOLOv7)

摘要:基于YOLOv7算法的高精度实时水果目标检测系统可用于日常生活中检测与定位苹果(apple)、香蕉(banan)、葡萄(grape)、橘子(orange)、菠萝(pineapple&#…

java第三十七课

前台整合: (1) 前台显示商品名称,进入详情,设置 1 直接购买 2 加入购物车 检验登录 (2) 登录后,下订单,直接购买,注意先写订单表,写订单表中使用价…

GroupMixFormer:基于Group-Mix注意力的视觉Transformer

文章目录 摘要1、简介2、相关工作2.1、视觉转换器2.2、全面的自注意力建模 3、组混合注意力和GroupMixFormer3.1. 动机:从个体到群体3.2. GMA: 混合组以获得更好的注意力3.3. 架构配置 4、实验4.1、实现细节4.2. 与最先进模型的比较4.3. 消融实验 5、结论 摘要 htt…

使用blip2进行图片输入文本输出

多模态的重要模型blip2,官方提供模型可以直接用来图片生成文本 github地址:https://github.com/salesforce/LAVIS/tree/main/projects/blip2 个人相当于跑了一下blip2的demo,记录下过程,供今后需要参考: 1、首先是环境安装&#…

mysql原理--B+树索引

1.没有索引的查找 1.1.在一个页中的查找 (1). 以主键为搜索条件 可以在 页目录 中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录。 (2). 以其他列作为搜索条件 这种情况下只能从 最小记录 开始依次遍历单链表中的每条记录&am…

SpringBoot+线程池实现高频调用http接口并多线程解析json数据

场景 SpringbootFastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文): SpringbootFastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文)-CSDN博客 Java中ExecutorService线程池的使用(Runnable和Callable多…

解决下载huggingface模型权重无法下载的问题

文章目录 方法一(推荐)方法二方法三依然存在的问题 由于某些原因,huggingface的访问速度奇慢无比,对于一些模型(比如大语言模型LLM)的权重文件动辄几十上百G,如果用默认下载方式,很可能中断,这里推荐几种方式。 方法一…

言简意赅的 el-table 跨页多选

步骤一 在<el-table>中:row-key"getRowKeys"和selection-change"handleSelectionChange" 在<el-table-column>中type"selection"那列&#xff0c;添加:reserve-selection"true" <el-table:data"tableData"r…