作者:Yiyuery 链接:https://juejin.cn/post/6872202037426618382 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

对于String类型,其对象内部需要维护三个成员变量,char[] chars,int startIndex, int length。chars是存储字符串数据的真正位置,在某些情况下是可以共用的,实际上String类型是不可变类型。例如:String str=new String("hello"),内存分布如下:


https://zhuanlan.zhihu.com/p/60150060

String类最重要的属性为char[]引用value,当我们建立一个String对象时:

其内存保存基本形式为:

  1. d是一个引用建立在栈上,指向了String对象的地址
  2. String对象可以建立在堆上,也可以在字符串常量区
  3. value是一个char[]引用,其指向一块内存,存放字符串

String 类型在JVM中的内存分配