对于String 中的substring()方法的底层研究及优缺点
根据看源码可以知道,这个方法是通过new String(偏移量,数量,原字符串值)的构造方法,进行创建对象,这个方法的好处是为了提高效率实现快速的共享,但是由于要赋值原有的数据进行截取,在新的截取的字符串中包含了原来的所有的内容,占据了相应的内存,但是实际数值只是其中一部分,浪费了大量的内存空间
源码
![](https://images2017.cnblogs.com/blog/1268102/201712/1268102-20171231165816070-1503314313.png)
![](https://images2017.cnblogs.com/blog/1268102/201712/1268102-20171231165858335-732528255.png)
有关内存溢出的原因
String的这个构造函数使用了以空间换时间的策略,浪费内存空间,提高字符串的生成速度