百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

String、StringBuffer 和 StringBuilder 三者的区别

yuyutoo 2025-01-10 18:13 3 浏览 0 评论

String、StringBuffer 和 StringBuilder 区别

String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,效率低下,大量浪费有限的内存空间,每次生成对象都会对系统性能产生影响,效率低。

StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。

StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。

StringBuffer 适用于用在多线程操作同一个StringBuffer 的场景,如果是单线程场合 StringBuilder 更适合。

StringBuffer 同时最多只有一个线程可以运行这些方法,也就是保证了线程安全。 StringBuilder 没有线程安全机制,运行起来就不用考虑给线程加锁,所以运行效率会比 StringBuffer 要高。

StringBuffer是一个容器,长度可变,可以直接操作字符串,用toString方法变为字符串 。

1.存储

1)append(); //将指定数据加在StringBuffer末尾,返回值也是StringBuffer

StringBuffer sb = new StringBuffer(//可以加str);

StringBuffer sb1=ab.append(数据) //数据可以任何基本数据类型。

2)insert();// 插入

sb.insert(index ,数据);

2.删除

sb.delete(start ,end); //删除start到end的字符内容,这里的所有包含index的操作都是含头不含尾的

sb.deleteCharAt(index);//删除指定位置的字符

//清空StringBuffer缓冲区

sb=new StringBuffer();

sb.delete(0,sb.length());

3.获取

char c = sb.charAt(index);//获取index上的字符

int i = sb.indexOf(char)://获取char字符出现的第一次位置

4.修改

sb =sb.replace(start,end,string)//将从start开始到end的字符串替换为string;

sb.setCharAr(index ,char);//将index位置的字符变为新的char

5.反转 sb.reverse();//将sb倒序

在项目中创建类 Check ,验证字符串操作和字符串生成器操作的效率。

public class Check{

public static void main ( String [] args ){

String str ="";//创建空字符串

long starTime = System . currentTimeMillis();

//定义对字符串操作的起始时间

for ( int i =0; i <10000; i ++){

//利用 for 循环执行10000次操作

str = str +i;//循环追加字符串

long endTime = System . currentTimeMillis ();

//定义对字符串操作后的时间

long time=endTime - starTime ;

//计算对字符串执行操作的时间

System . out . println (" String 循环1万次消耗时间:"+ time );//将执行的时间输出

StringBuilder builder = new StringBuilder ("");//创建字符串生成器

starTime = System . currentTimeMillis ();//定义操作执行前的时间

for ( int j =0; j <10000; j ++){

builder . append ( j );//循环追加字符

}

endTime = System . currentTimeMillis ();

//定义操作后的时间

time= endTime - starTime;//追加操作执行的时间

System.out. println (" StringBuilder循环1万次 消耗时间 :"+ time )://将操作时间输出

运行结果:String 循环1万次消耗时间:179

StringBuilder 循环1万次消耗时间:0


StringBuffer 、 StringBuilder 、 String 的区别

String 对象类型:字符串常量,线程不安全,执行效率低。

StringBuilder 对象类型:字符串常量,线程不安全,执行效率高。


StringBuffer 对象类型:字符串常量,线程安全,执行效率中等。

StringBuffer 、 StringBuilder 、 String 类的适用场合:

(1)操作少、数据少,用 String 。

(2)单线程,操作多,数据多,用StringBuilder 。

(3)多线程,操作多,数据多,用 StringBuffer。简单的字符串修改时,时间非常快,三者区别不大,只有在大量的字符串修改时,才会显示出 StringBuffer 和 StringBuilder 的优势。


相关推荐

网站制作的流程是什么呢?简单大概的流程

关注我!了解更多网站建设的小干货~如今,随着网络时代的全面到来,网站在人们的生活和工作中发挥着极其重要的作用。网站制作的发展使更多的人加入了这个行业。如果你想掌握网站制作的知识,你可以在学校或网上学习...

一款谷歌(Google)打造的广告网页设计制作软件

GoogleWebDesigner是由谷歌(Google)打造的一款广告网页设计制作软件,它能够帮助从事于广告网页设计工作或是有这方面需求的用户更加有效快速的进行完成相关的行业设计工作,软件可以支...

普通网站如何制作一个网站?

对行外人来讲,在预备做一个网站项目时,最想了解的无非就是网站制作的悉数流程。网站制作是要有计划的,事先策划好才能更快更好的完成。网站的几个基本组成元素:域名+空间+程序+模板+维护经验+日常管理.网站...

用纯Python就能写一个漂亮的网页,再见HTML

再见HTML!用纯Python就能写一个漂亮的网页我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互:天啊,听听头都大呢!其实我就给老板做一个...

HTML表单4(form的action、method属性)——零基础自学网页制作

表单的工作过程表单的信息发送与处理过程可以简单的进行图示,如下图。以注册会员为例,用户在自己的电脑上打开相应的注册表单页面填写信息,完成填写后点击提交按钮,也就是图中1所示过程。这时浏览器会将这些信息...

官网网站设计网页制作模板建站前端自适应响应式网站仿站门户

案例背景航科慧联无人机搜索雷达能够在多种天气下检测到无人机的入侵、并获得目标的距离、方向和高度等具体信息,是无人机反制作战中的关键设备。航科慧联无人机搜索雷达能够在多种天气下检测到无人机的入侵、并获得...

软网推荐:在线制作软件图标

在制作PPT演示、软件、网页或其他程序时,我们往往需要用到一些个性化的图标。现在,即便是不安装任何软件,也可以上网在线制作自己需要的图标。首先访问如下制作网址:http://www.rw-design...

自定义跳转的h5网页如何制作?

文章来源:墨鹊微站...

网页如何制作?这几点要知道

这是一个个性张扬的时代,也是一个动手能力和动脑能力都比较强的时代,因此很多人对于能够自己动手完成的东西,都不太想假手于人。于是网页制作成了各大搜索引擎里面排名比较靠前的关键词之一。想要知道网页如何制作...

手机端网站简单制作教程,怎么快速制作一个移动端的网站

想要创建一个手机端的网站,需要有域名、已经完成网站页面的开发设计,零基础朋友不懂代码技术,直接在线套用乔拓云里面的网站模板来开发是比较简单可行的,进入乔拓云网,复制网站模板编辑网站的内容,注册域名后绑...

几张动图教你轻松了解Dreamweaver做网页

施老师:当今可是互联网时代,人们的生活、社交离不开互联网,那么不管你是网页设计师,还是销售达人,还是个体户,总必不可少的要在网上呈现一些页面给客户看,这个就是让你做网页,而Dreamweaver是做网...

用Deepseek制作网页版的汉诺塔游戏保姆级教程

在deepseek中输入:“帮我做一个网页版的汉诺塔演示游戏,游戏包含2层、3层、4层、5层的汉诺塔游戏演示,制作自动求解演示按钮,点击按钮就可以生成出步数,同时自动演示最优解动画。”...

JS制作网页版计算器

大家晚上好,我是洁哥,抱歉今天有点晚了,但是洁哥不会缺席哦,今天我们来看一个JS实现网页版计算器的例题,先来看一看出来的效果吧(123+123=246)(123-123=0)(123*123=1512...

网页制作流程哪几步

在数字化时代,网页制作成为企业和个人展示形象、传递信息的重要方式。但是,许多人对于网页制作的流程仍感到困扰。为了解决这一问题,我们将深入探讨网页制作的关键步骤,助您更好地理解和应用这一过程。第一步:需...

这4个设计技巧,教你做好个人网页制作

随着互联网发展,个人建站已经不是什么稀奇事,学生、求职者、插画师、摄影师、作家……都可以制作个人网站,用来展示自身形象,或者吸引粉丝。那么如何做好个人网站呢?在不懂设计和技术知识的情况下,个人网页制作...

取消回复欢迎 发表评论: