String在java中我们是用来操作字符串的,但它的底层结构确是一个char[]数组,通过数组的方式将每个字符进行保存。
<使用时:String str="ABCD",内部存value确是:value=['A','B','C','D'];
如下图:
参考String源码如下:
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[]; private int hash; // Default to 0 private static final long serialVersionUID = -6849794470754667710L; ......此处省略N多代码 public String(String original) { this.value = original.value; this.hash = original.hash; } }

本文探讨了Java中String对象的底层结构,指出其使用char数组存储字符。通过分析源码,解释了String赋值的两种方式:直接赋值和new String()构造,以及它们在内存中的不同表现。还讨论了String对象的比较和字符串拼接,以及JDK9以后String底层结构由char[]改为byte[]的原因,包括节省内存和减少垃圾回收次数的优势。

最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



