String 是java中常用的对象,注意它不是基本类型的一种。有时会碰到StringBuffer,StringBuilder,都是带String的有什么区别呢?
首先Sting是常量而StringBuilder和StringBuffer是变量,这里可能会疑问String怎么可能是常量呢?String a="1";而a+="2"; 一般来说常量是不允许再次赋值的这里的a+="2";是重新顶一个常量。所以在执行速度上String 比两外两个慢,另外两个都是变量。
而StringBuffer和StringBuilder的区别是StringBuilder是线程不安全的,StringBuffer是线程安全的,线程安全的好处体现在多线程访问时和一个线程多次访问的结果是一样的。