博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
string、stringbuilder,stringbuffer使用场合
阅读量:4146 次
发布时间:2019-05-25

本文共 621 字,大约阅读时间需要 2 分钟。

先总结下各自使用场景:

少量字符串操作:string

大批量字符串操作,并且不要求线程安全:stringbuilder

大批量字符串操作,要去线程安全:stringbuffer

通常情况下的执行速度:stringbuilder > stringbuffer > string

为什么是这样一个排序?

例子1:

String a = “hello”;

String b = “world”;

String c = “haha”;

String d = a + b + c;

New stringbuilder().append(“hello”).append(“world”).append(“haha”);

前者在执行过程中会生成4个对象,后者只生成一个,所以速度后者占优,这是通常情况下。

例子2:

String a = “hello” + “world” + “haha”;

New stringbuilder().append(“hello”).append(“world”).append(“haha”);

这个例子,a会在编译期直接编译成string a = “helloworldhaha”;

而stringbuilder需要先生成一个对象,在做3次操作才能达到相同结果,所以这时候string的速度更快。

 

遗留问题:

如果就在单线程内,用stringbuilder和stringbuffer操作大量字符串是不是应该是相差无几的?

转载地址:http://hwiti.baihongyu.com/

你可能感兴趣的文章
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>
DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
查看>>
DeepLearning tutorial(6)易用的深度学习框架Keras简介
查看>>
DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
查看>>
流形学习-高维数据的降维与可视化
查看>>
Python-OpenCV人脸检测(代码)
查看>>
python+opencv之视频人脸识别
查看>>
人脸识别(OpenCV+Python)
查看>>
6个强大的AngularJS扩展应用
查看>>
网站用户登录系统设计——jsGen实现版
查看>>
第三方SDK:讯飞语音听写
查看>>
第三方SDK:JPush SDK Eclipse
查看>>
第三方开源库:imageLoader的使用
查看>>
自定义控件:飞入飞出的效果
查看>>
自定义控件:动态获取控件的高
查看>>