深入学习String

作为一名Java程序员,最常用的就是String了,虽然常用,但是了解只是皮毛,于是来补习一下

String的存储结构和一些重要方法

以主流的JDK 1.8为例,String的内部实际存储结构为 char 数组,源码如下

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    // 用于存储字符串的值 
    private final char value[];
    // 用于缓存字符串的hash code 
    private int hash; // Default to 0 
    ...
}

String有以下 4 个重要的构造方法

1.以String为参数的构造方法

public String(String original) {
        this.value = original.value;
        this.hash = original.hash;
}

2.以char []为参数的构造方法

public String(char value[]) {
        this.value = Arrays.copyOf(value, value.length);
}

3.以StringBuffer为参数的构造方法

public String(StringBuffer buffer) {
        synchronized(buffer) {
            this.value = Arrays.copyOf(buffer.getValue(), buffer.length());
        }
    }

4.

以StringBuilder为参数的构造方法

public String(StringBuilder builder) {
       this.value = Arrays.copyOf(builder.getValue(), builder.length());
}

其中,比较容易被忽略的是以 StringBuffer 和 StringBuilder 为参数的构造函数

原文 

http://www.louisvv.com/archives/2447.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 深入学习String

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址