Java知识

String

2020-07-19  本文已影响0人  淡季的风
Java 中有3种字符串类:StringStringBufferStringBuilder

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。
上一篇 下一篇

猜你喜欢

热点阅读