您的位置:首页 > 其它

String.intern节省内存空间或内存溢出

2014-09-27 12:01 309 查看
http://blog.csdn.net/hanrentanfei/article/details/1817402

我们可以看到执行的结果为:The busy memory is: 1252880

注意:如果把p.setName(s)这句换成p.setName(s.intern());

再执行该程序我们可以看到结果:The busy memory is: 515944

我们可以到经过细微的改变我们可以看到其占用的内存不是一个数量级的

那么这个intern()函数做了什么呢?我认为:

在String对象维持的一个私有池里面存放的字符串“123456789123456789123456789”可能只有一个,因为每次比对都是一样,所以是不会将这样的对象重复放到池里面的,所以调用intern()方法就是完成的这个功能,其返回的只是里面的同一个字符串,而没有创建新的字符串,所以不会占用太多的空间

注:以上很多只是个人理解,具体实现细节不太清楚,所以难免会有错的地方,希望指出。

调用长字符串的
String.intern()

http://www.importnew.com/12901.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: