String

作者: 淡季的风 | 来源:发表于2020-07-19 18:54 被阅读0次
Java 中有3种字符串类:StringStringBufferStringBuilder
  • String 是不可变字符串。StringBufferStringBuilder 是可变字符串。
  • StringStringBufferStringBuilder 都是final类, 不可被继承 。
  • StringBuffer是线程安全的,StringBuilder是线程不安全的。

String


public final class String implements Serializable, Comparable<String>, CharSequence {
    @Stable
    private final byte[] value;
    private final byte coder;
    private int hash;
    private static final long serialVersionUID = -6849794470754667710L;
    public String() {
        this.value = "".value;
        this.coder = "".coder;
    }
}
  1. String 主要由一个不可变字节数组byte[] value 组成, 该字节数组由final修饰, 一旦初始化,就不可修改,因此String是不可变字符串。
  2. String是fina类, 不可被继承,因此我们无法重写String类。

StringBuffer


    byte[] value;
  1. StringBuffer由可变数组组成, 可动态扩容, 默认容量16。
  2. StringBuffer是final类, 不可被继承。
  3. StringBuffer的方法是被synchronized关键字修饰的, 因此线程安全。

StringBuilder


     byte[] value;
  1. StringBuilderStringBuffer一样, 由可变字节数组构成。
  2. StringBuilder 方法未被synchronized关键词修饰, 因此线程不安全。
  3. StringBuilderStringBuffer性能好。

历史版本


  1. 历史版本, 上述3类由字符数组构成: char[] value。

相关文章

网友评论

    本文标题:String

    本文链接:https://www.haomeiwen.com/subject/rxvlkktx.html