天天看點

Java StringBuilder和StringBuffer的異同

  • StringBuilder

    StringBuffer

    都是可變字元串,前者線程不安全,後者線程安全。
  • StringBuilder

    StringBuffer

    的大部分方法均調用父類

    AbstractStringBuilder

    的實作。其擴容機制首先是把容量變為原來容量的2倍加2。最大容量是

    Integer.MAX_VALUE

    ,也就是

    0x7fffffff

  • StringBuilder

    StringBuffer

    的預設容量都是16,最好預先估計好字元串的大小避免擴容帶來的時間消耗。
  • StringBuilder

    效率更快,因為它不需要加鎖,不具備多線程安全而

    StringBuffer

    則每次都需要判斷鎖,效率相對更低