最近在做番茄钟的时候用到了字符串你的拼接,其中用到了StringBuilder,为了区分一下他和String的区别,深入的研究了一下。
经过在网上的学习,我发现了不止又String和StringBuilder,还出现了一个StringBuffer,可以让我区分一下这三个的区别。
在执行速度上,StringBuilder>StringBuffer>String。这是什么原因呢?答案揭晓,String是字符串常量,而StringBuffer和StringBuilder是字符串变量。
StringBuilder是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。
StringBuilder是C#钟先有的,而在Java中,首先出现的事StringBuffer,StringBuilder类来源于jdk1.5以后的版本。
string和StringBuilder两者的终极区别:
1.string对象是恒定不变的,stringBuilder对象表示的字符串是可变的。StringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。
2.对于简单的字符串链接操作,在性能上stringBuilder并不一定总是优于string。因为StringBuilder对象创建代价较大,在字符串目标链接较少的情况下,过度滥用StringBuilder会导致性能的浪费,只有大量的或者无法预知次数的字符串操作,才考虑StringBuilder来实现。事实上,一般连接次数设置100次以内,根本看不出两者性能的差别。
3.当修改字符串信息时,此时不许创建对象,可以使用StringBuilder对象。