[問題]new新物件的問題
請問下列三種寫法
1.
MyObject obj;
for(int i=0;i<10000000;i++)
{
obj=new MyObject();
do something......
}
2.
for(int i=0;i<10000000;i++)
{
MyObject obj=new MyObject();
do something......
}
3.
MyObject obj=new MyObject();
for(int i=0;i<10000000;i++)
{
obj.init();
do something......
}
其中3是我現在的寫法,但是obj.init()會花太多時間
(比new一個新的MyObject還花時間)
所以想請問1和2這兩種寫法那種比較好?
2我的議題是這樣每次都宣告一個新的obj,那上一個obj memory會回收嗎?
如果會是甚麼時候回收?
ps.一開始用過2的寫法,但曾經出現過java heap size的問題...
感覺就是一直宣告MyObject obj=new MyObject()把記憶體塞爆?
1我的議題是雖然只宣告一次obj
但之後也是每次都分給他一個新的memory空間...?
和2的寫法比好像一樣?
總之我不太了解java在甚麼時候會回收不用的記憶體?
而怎樣的情況下該變數的記憶體會被認定為不在使用可以回收的?
煩請有經驗的版友指教
或者有人有推薦的書即可以介紹一下的
感謝 orz...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.159.249
→
04/07 23:16, , 1F
04/07 23:16, 1F
推
04/07 23:58, , 2F
04/07 23:58, 2F
推
04/11 01:52, , 3F
04/11 01:52, 3F
推
04/25 16:23, , 4F
04/25 16:23, 4F
討論串 (同標題文章)