关于string每天我们都要接触到的,但是说到这三个类,最主要的就是线程安全,和运行速度方面的。
1.首先咱们先说说运行速度,或者是执行速度,这方面的速度分别为 StringBuilder 是大于StringBuffer大于String
2.为什么string是最慢的呀?可能有别的小盆友已经知道了,是的String是字符串常量,而StringBuilder 和 StringBuffer都是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上做操作,不像是String一样创建一些对象进行操作,所以这样速度是比较快的。(因为是在对象上进行操作,而不是创建一个对象进行操作,所以这才是差距的根本)。
3.以及线程安全方面的问题,StringBuilder:线程非安全的,而StringBuffer是线程安全的,当我们在字符串缓冲区被多个线程使用时,JVM不能保证StringBuilder的操作是安全的,虽然速度方面是最快的,但是可以保证StringBuffer是可以正确操作的,当然大多数的情况下就是我们在单线程下进行的操作,所以大多数情况下还是建议使用StringBuffer而不是,StringBuffer,对就是速度的原因。