java 中操作字符串都有哪些類?它們之間有什么區別?(已更新)
答:String、StringBuffer、StringBuilder
相同(StringBuffer、StringBuilder):
都是字符串的緩沖區、可變的字符序列;具有相同的構造和方法。
區別(String、StringBuffer、StringBuilder):
內存
String 是不可變的對象,每次操作都會生成新的 String 對象,然后將指針指向新的 String 對象,
StringBuffer、StringBuilder 可以在原有對象的基礎上進行操作,所以在經常改變字符串內容的情況下最好不要使用 String。
出現版本:
StringBuffer是 Jdk 1.1
StringBuilder是 Jdk 1.5
線程安全:
StringBuffer線程安全,同步鎖(synchronized),多線程仍可以保證數據安全
StringBuilder線程不安全,多線程無法保證數據安全
效率:
StringBuilder > StringBuffer > String
總結:
不頻繁增改字符,就用String;否則用StringBuffer或StringBuilder