作者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
推 tkcn:請問超多記憶體大概是多少? 01/24 00:14
→ sysc:300mb 01/24 00:28
推 tkcn:不太合理,可能需要看程式碼 01/24 00:36
推 f953024:你是讓程式跑好幾個月嗎.... 01/24 00:50
→ sysc:差不多半年 windows jvm~~~不過那是我丟著忘記.... 01/24 19:36
推 jtmh:不知道你所謂的代換 string 是如何代換的? 不過如果你真的 01/24 22:18
→ jtmh:確定是這個問題的話,可能要好好檢查是不是程式一直把 string 01/24 22:23