社区
Java SE
帖子详情
JVM能不能自动释放string所占用的存储空间
SimonDW
2005-04-04 09:28:11
Java里string对象是静态保存的。
如果程序中使用的字符串很多的话,这个所占用的空间就会很大。
我做的项目里有这样的问题:
因为要做log,所以会不断产生随时间变化而变化的字符串。
这样的话,就导致了使用了的heap堆不断增长。
如果产生速度比较快的话,就会明显的增长。
我想知道的是,这里的string会不会过一段时间后自动回收
被回收不常使用的部分?
...全文
474
10
打赏
收藏
JVM能不能自动释放string所占用的存储空间
Java里string对象是静态保存的。 如果程序中使用的字符串很多的话,这个所占用的空间就会很大。 我做的项目里有这样的问题: 因为要做log,所以会不断产生随时间变化而变化的字符串。 这样的话,就导致了使用了的heap堆不断增长。 如果产生速度比较快的话,就会明显的增长。 我想知道的是,这里的string会不会过一段时间后自动回收 被回收不常使用的部分?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SimonDW
2005-04-10
打赏
举报
回复
不过,好像我分析错,不是字符串占用的空间,
是用的log4j可能有什么缓存系统。
SimonDW
2005-04-10
打赏
举报
回复
String 是immutable的类,是我弄错了。
到这里问,有时候还是能得到点东西的。
DanielYWoo你给的连接就很有用。
资料找起来,有时候真的是没办法一下子就能找到。
我只是需要足够确定的证据。
其实只要把heap的最大值设小点,等到极限了,
就会执行Full GC, log 里就可以看到变化了。
wyx424
2005-04-06
打赏
举报
回复
你最好是写自己的回收代码,GC是不可靠的,因为没人会知道它什么时候会运行
cuij7718
2005-04-06
打赏
举报
回复
对用StringBuffer,在处理大量的字符串的时候StringBuffer得效果提升很明显
DanielYWoo
2005-04-06
打赏
举报
回复
>>Java里string对象是静态保存的。
要么你说错了,要么就是我理解错你的意思了。constant pool里的虽然是共享的,但绝不是静态的,heap里的就更不是了。
>>你最好是写自己的回收代码,GC是不可靠的
汗...
楼主,先看看这个再问,
http://java.sun.com/docs/hotspot/gc/
如果你懂了eden,generation, full gc, reachable的概念,你根本不用来论坛上问,问也是白问,大多数人都是一知半解来胡弄你的分
kenny1979
2005-04-06
打赏
举报
回复
回复人: wyx424(思远) ( ) 信誉:100 2005-04-06 12:55:00 得分: 0
你最好是写自己的回收代码,GC是不可靠的,因为没人会知道它什么时候会运行
**************************************************************************
内存空间回收能自己写吗? 楼上的指条路!
hongyan2004
2005-04-05
打赏
举报
回复
最好不要用STRING,用STRINGBUFFER更好,
是的,是过一段时间就会被GC回收
yonggui111
2005-04-04
打赏
举报
回复
最好用StringBuffer类,要转换的时候用.toString()方法.
最好不要用 String s = "xxx";
kingfish
2005-04-04
打赏
举报
回复
String s = new String("xxxxxxx");
这样是在heap上分配空间,如果s上没有任何引用, 那么就会被GC收集
水之轮回
2005-04-04
打赏
举报
回复
JAVA里的垃圾回收机制是可以回收String用过后的内存空间,但照你的意思的话还是不要靠JVM的回收机制来回收你的String所花费的内存,因为JAVA里的回收机制并不是很可靠的,你不可能知道它何时才会启动,而且每次都要等到下次运行回收机制时才真正的回收你所不用的内存。
考虑电动汽车灵活性的微网多时间尺度协调调度研究(Matlab代码实现)
考虑电动汽车灵活性的微网多时间尺度协调调度研究(Matlab代码实现)
易语言源码易语言QQ帐号
自动
申请源码
易语言源码易语言QQ帐号
自动
申请源码
(顶刊复现)基于非线性反步法和Lyapunov-MPC模型预测的自主水下航行器轨迹跟踪控制(包括fossen动力学模型)
(顶刊复现)基于非线性反步法和Lyapunov-MPC模型预测的自主水下航行器轨迹跟踪控制(包括fossen动力学模型)
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章