当前位置: 代码迷 >> 综合 >> jdk1.6 和 jdk1.7中的 substring(ing begin int end)的不同
  详细解决方案

jdk1.6 和 jdk1.7中的 substring(ing begin int end)的不同

热度:95   发布时间:2024-01-22 05:27:20.0

jdk1.6 和 jdk1.7中的 substring(ing begin int end)中的不同  

首先String 内部存储的仍然是一个char[]

String a = "abcdef"   b= a.subString(0,1)  

(1)1.6中b返回的仍然是a那块内存只是偏移量和边界不同,这时候如果a长度很大,b长度很小而且b生命周期长的话,容易内存泄露,如果想返回一个新的内存块呢  b= a.subString(0,1) + “”  ,我们知道String是不可变对象,这样就新建了一个对象,

(2)1.7中b便是返回一个新的对象了

(3)如果是在1.6环境中,很多b这样的小块的话,这样的设计是很合理的,能起到节约内存的效果。


  相关解决方案