String 字符串常量
每次对String类型进行改变的时候等同于生成了一个新的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了之后,JVM的GC就会开始工作,那速度一定是相当慢的。
StringBuffer 字符串变量(线程安全)
类似于String的字符串缓冲区,每次结果都会对StringBuffer对象本身进行操作,可安全地用于多个线程。可以在必要时对这些方法进行同步。
主要方法:append()和insert()
例:z 引用一个当前内容是"start"的字符缓冲区对象
z.append("le"); →"startle"
z.insert(4,"le"); →"starlet"
StringBuilder 字符串变量(非线程安全)
StringBuilder用作StringBuffer的一个简易替换,用作字符串缓冲区被单个线程使用,不保证同步。在大多数实现中,StringBuilder比StringBuffer要快,两者方法基本相同。