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()方法就是完成的这个功能,其返回的只是里面的同一个字符串,而没有创建新的字符串,所以不会占用太多的空间
注:以上很多只是个人理解,具体实现细节不太清楚,所以难免会有错的地方,希望指出。
调用长字符串的
http://www.importnew.com/12901.html
我们可以看到执行的结果为: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
相关文章推荐
- java内存优化(1):使用String.intern()节省java堆内存
- jdk1.7 sun hotspot关于string.intern()内存溢出
- 节省内存的String.intern()
- 使用String.intern减少内存使用
- Java中,String的subString方法易导致内存溢出
- 应用C++特性提高执行速度及节省内存空间(1)
- 深入理解Java String#intern() 内存模型
- GNU C中的零长度/变长数组 、内存空间节省
- 使用String.intern减少内存使用
- 关于java基础类型与引用类型内存存储问题,以及string.intern()方法(String两种创建方式的区别)
- String.intern()内存分析
- JVM深入浅出(三) -- String.intern的内存分配和工作机制
- Java中String的内存空间分配
- 使用String.intern减少内存使用
- 使用String.intern减少内存使用
- String.Intern原来可以减少占用内存···
- string 的内存分配情况,以及intern()方法
- 使用String.intern减少内存使用
- 由intern深入String的内存模型
- 深入理解Java String#intern() 内存模型