首页 > 其他分享 >String_StringBuff_StringBuild的区别

String_StringBuff_StringBuild的区别

时间:2023-02-03 10:55:39浏览次数:33  
标签:StringBuff String stringBuilder System 线程 stringbuild stringbuffer StringBuild s

  最近在看面试题,stringbuffer和stringbuild也是经常会问到的,而在写代码的过程中,用到这两者都很少,一般都是string,如果要对字符串经常进行更改,那么stringbuffer和stringbuild这两个可变字符串会更好,因为stringbuffer和stringbuild类的对象进行内容更改都不会产生新的对象,而string底层由final修饰,每次改变string的值,都会产生一个新的string对象,占用我们的堆内存。

 

 1.stringbuild——可变字符串,在java5中被提出,相较于stringbuffer,stringbuild是线程不安全的,但是速度更快,在不考虑线程安全的情况下,使用stringbuild会更多。

 

 

 1         StringBuilder stringBuilder = new StringBuilder();
 2         stringBuilder.append("故事不感人");
 3         stringBuilder.append("讲故事的人却一直流眼泪");
 4         System.out.println(stringBuilder);
 5         //故事不感人讲故事的人却一直流眼泪
 6         stringBuilder.insert(5,",");
 7         System.out.println(stringBuilder);
 8         //故事不感人,讲故事的人却一直流眼泪
 9         stringBuilder.reverse();//文字倒序
10         System.out.println(stringBuilder);
11         //泪眼流直一却人的事故讲,人感不事故

  在stringbuild的源码中,方法也没有经过 synchronized 修饰,所以线程不安全

2.stringbuffer——可变字符串,相较于stringbuild,线程安全,但是速度比stringbuild慢,方法也很类似。

 

   源码中的方法被synchronized修饰

 

标签:StringBuff,String,stringBuilder,System,线程,stringbuild,stringbuffer,StringBuild,s
From: https://www.cnblogs.com/zeshengliao/p/17088427.html

相关文章

  • CodeForeces 1202D Print a 1337-string(构造)
    求能组成1337这个序列的串最短的串是什么这道题我们很容易想到组合数,我可以有限考虑选择3,因为只有3是两个,这样可以使这个串尽可能的短。但是选择3是不能满足我们组成任意个......
  • 【计算机网络】Stanford CS144 Lab1 : stitching substrings into a byte stream 学
    Puttingsubstringsinsequence实现一个流重组器。可以将带有索引的流碎片按照顺序重组。这些流碎片是可以重复的部分,但是不会有冲突的部分。这些流碎片将通过Lab0中......
  • 常用对象API(String类)
    目录StringBuffer字符串缓冲区特点&添加功能增删改查和可变数组长度StringBuilder类StringBuilder练习:String类String类特点:构造函数字符串常见方法获取转换判断比较inter......
  • C++中char*与string转换
    (1)char*转换为string:直接赋值即可chara[1024]="abcdefg";stringmm=a;(2)求char*(不包含\0)以及string的长度:strlen()函数cout<<"a.size:"<<strlen(a)<<endl;......
  • 将char* 赋值给std::string的一些陷阱
    这段时间,总是要使用char或者char*赋值给std::string,踩了不少坑。于是写了个测试代码,如果你不想看我的代码,可以跳到下面直接看总结:   #include<string> ......
  • 在使用cn.hutool.poi.excel,读取数据读不出String的问题
    今天想用cn.hutool.poi.excel包读取Excel数据,就一列数据,我本想用ExcelReader的readAll方法,并传入参数设置类的类型=String.class,发现没有读出数据且没有报错。经过一路翻......
  • POJ-2406-Power Strings
    PowerStringsTimeLimit:6000/3000ms(Java/Other)   MemoryLimit:131072/65536K(Java/Other)TotalSubmission(s):96   AcceptedSubmission(s):34Probl......
  • LeetCode - 344. Reverse String
    题目Writeafunctionthatreversesastring.Theinputstringisgivenasanarrayofcharacterschar[].Donotallocateextraspaceforanotherarray,youmust......
  • RedisTemplate和StringRedisTemplate区别
    RedisTemplate和StringRedisTemplate区别StringRedisTemplate继承RedisTemplate主要区别是使用的序列化类不同StringRedisTemplate的API假定所有的数据类型都是字符......
  • Qt QString::contains() QString::startsWith() 在字符串中检索字符串
    函数QString::startsWith()判断一个字符串是否以某个字符串开头。此函数具有两个参数,第一个参数指定了一个字符串,第二个参数指定是否大小写敏感(默认情况下,是大小写敏......