String、StringBuffer层宫、StringBuilder區(qū)別
StringBuffer学密、StringBuilder和String一樣,也用來代表字符串横浑。String類是不可變類剔桨,任何對String的改變都 會引發(fā)新的String對象的生成;StringBuffer則是可變類徙融,任何對它所指代的字符串的改變都不會產(chǎn)生新的對象领炫。既然可變和不可變都有了,為何還有一個StringBuilder呢张咳?相信初期的你帝洪,在進(jìn)行append時,一般都會選擇StringBuffer吧脚猾!
先說一下集合的故事葱峡,HashTable是線程安全的,很多方法都是synchronized方法龙助,而HashMap不是線程安全的砰奕,但其在單線程程序中的性能比HashTable要高蛛芥。StringBuffer和StringBuilder類的區(qū)別也是如此,他們的原理和操作基本相同军援,區(qū)別在于StringBufferd支持并發(fā)操作仅淑,線性安全的,適 合多線程中使用胸哥。StringBuilder不支持并發(fā)操作涯竟,線性不安全的,不適合多線程中使用空厌。新引入的StringBuilder類不是線程安全的庐船,但其在單線程中的性能比StringBuffer高。