内部实现上StringBuffer与StringBuilder Vs StringTokenizer的区别是什么。何时使用这些。请等待答案。
我也在浏览源代码。
答案 0 :(得分:17)
StringBuffer
- 在JDK 1.0中引入 - 是线程安全的(它的所有方法都是synchronized
),而StringBuilder
- 因为JDK 1.5 - 不是。因此,建议在正常情况下使用后者。
StringTokenizer
用于完全不同的目的,然后是前两个:将字符串切成碎片,而不是组装。正如@Henning指出的那样,它自JDK 1.5以来也“退役” - 建议改为使用String.split
。
答案 1 :(得分:5)
StringBuffer设计为线程安全的,并且StringBuffer中的所有公共方法都是同步的。 StringBuilder不处理线程安全问题,并且没有任何方法同步。
在大多数情况下,StringBuilder的性能优于StringBuffer。
尽可能使用新的StringBuilder。
Here是StringBuilder & StringBuffer
的performance comparison
StringBuilder& StringBuffer持有String,其中StringoTokeizer类允许应用程序将字符串分解为标记..所以它就像奇怪的一样
答案 2 :(得分:3)
StringBuffer - 是StringBuilder的同步版本(在其未同步的对等体之后引入)
答案 3 :(得分:1)
StringBuffer与StringBuilder具有相同的用途,但StringBuffer是线程安全的。
StringTokenizer用于根据某些分隔符将字符串拆分为标记。