String 的substring 方法底层研究,以及内存溢出

Posted wangtao610

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String 的substring 方法底层研究,以及内存溢出相关的知识,希望对你有一定的参考价值。

对于String 中的substring()方法的底层研究及优缺点
根据看源码可以知道,这个方法是通过new String(偏移量,数量,原字符串值)的构造方法,进行创建对象,这个方法的好处是为了提高效率实现快速的共享,但是由于要赋值原有的数据进行截取,在新的截取的字符串中包含了原来的所有的内容,占据了相应的内存,但是实际数值只是其中一部分,浪费了大量的内存空间
 
 源码
技术分享图片技术分享图片

有关内存溢出的原因

技术分享图片

 

String的这个构造函数使用了以空间换时间的策略,浪费内存空间,提高字符串的生成速度


技术分享图片
 


以上是关于String 的substring 方法底层研究,以及内存溢出的主要内容,如果未能解决你的问题,请参考以下文章

StringBuilder底层代码研究

Java String

java String.substring 乱码

String 截取字符串方法——subString()

String类的substring方法

Java的String中的subString()方法