开发者社区> 问答> 正文

简述Java语言中String对象调用substring()时发生了什么

简述Java语言中String对象调用substring()时发生了什么

展开
收起
huc_逆天 2021-01-08 16:40:08 791 0
1 条回答
写回答
取消 提交回答
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    当使用x.substring(1,3)对x赋值的时候,它会指向一个全新的字符串

    在jdk 6 中,String类包含三个成员变量:char value[]int offsetint count。他们分别用来存储真正的字符数组,数组的第一个位置索引以及字符串中包含的字符个数。

    当调用substring方法的时候,会创建一个新的string对象,但是这个string的值仍然指向堆中的同一个字符数组。这两个对象中只有count和offset 的值是不同的。

    在jdk 7 中,substring方法会在堆内存中创建一个新的数组。

    2021-01-08 16:40:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载