作者sysc (和平时多准备)
看板java
标题Re: [问题] JAVA String
时间Fri Jan 23 20:26:32 2009
※ 引述《mgdesigner (魔法设计师)》之铭言:
: ※ 引述《sysc (和平时多准备)》之铭言:
: : 如果说我有一个String
: : String a = "xxx";
: ~~~~~~~~~~~~~~~~~
: 上面拆开来等於说:
: 1.产生一个新物件"xxx"
: 2.产生一参考 a,让a指向"xxx"
: : 现在当我这个a 想要改变值的时候
: : 现在我是这样写
: : a = "bbb";
: ~~~~~~~~~~~
: 这等於说:
: 1.产生一个新物件"bbb"
: 2.把a改指到"bbb"
: 但是"xxx"仍然存在喔,只是"xxx"目前没有被一个参考指到。
: : 但是 如果要对记忆体比较好一点的话 是否需要先用个方法把a 给clear 掉?
: 你应该是说把"xxx"给清掉吧?
: a=null;a= "bbb";这样?记得gc()一下,不过应该是没差很多。
我有注意到我写的简单代换String 的程式
我是用Timer 让字串一直代换
过了几个月後竟然会吃超多记忆体...
虽然是没有变慢怎样的
重新执行也很正常
但是就是觉得怪怪的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.26.242
1F:推 tkcn:请问超多记忆体大概是多少? 01/24 00:14
2F:→ sysc:300mb 01/24 00:28
3F:推 tkcn:不太合理,可能需要看程式码 01/24 00:36
4F:推 f953024:你是让程式跑好几个月吗.... 01/24 00:50
5F:→ sysc:差不多半年 windows jvm~~~不过那是我丢着忘记.... 01/24 19:36
6F:推 jtmh:不知道你所谓的代换 string 是如何代换的? 不过如果你真的 01/24 22:18
7F:→ jtmh:确定是这个问题的话,可能要好好检查是不是程式一直把 string 01/24 22:23