PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
java
[問題] 請問在迴圈內宣告物件
作者:
mamasom
(mimi)
2016-11-09 23:09:35
請問一下
假設代碼如下兩段
1.
for(int i=0;i<10000;i++){
User user = new User();
...
}
2.
User user = null;
for(int i=0;i<10000;i++){
user = new User();
...
}
在執行上的效能會有差嗎?
先不論new Object產生的多寡
單純宣告的寫法來說,只宣告一次與宣告一萬次
是不是已第二點來說比較好呢?
謝謝
作者:
pttworld
(批踢踢世界)
2016-11-09 23:16:00
百萬級數人有感。問題是new。
作者:
d1288999
(Davis)
2016-11-10 00:40:00
其實沒有差,compiler會幫你優化,可看class檔
作者:
LPH66
(-6.2598534e+18f)
2016-11-10 00:40:00
宣告沒差, 因為實際編譯之後變數位置都預先留好了所以這兩種方式的差別就只是 user 這邊數外面看不看得到這變數*
作者:
ssccg
(23)
2016-11-10 09:10:00
宣告只是編譯時留位置,在執行期有差的是 new宣告區域變數在執行期只是method call時stack frame大一點在同個method中放在什麼地方都一樣在method的stack frame
作者:
swpoker
(swpoker)
2016-11-10 09:47:00
大量就有差~head會爆heap拉
作者:
adrianshum
(Alien)
2016-11-11 10:34:00
樓上:op 問是兩種方式有沒差。會爆heap的情況兩者都會。
繼續閱讀
[問題] Java 簡單陣列問題
h84517
[書籍] 出售Java考試卷1張,降價了!(已售出)
laimicky
[書籍] 賣JAVA考試兌換券 (售出)
q810918
[書籍] Java考試卷(售出)
ggnggn
[書籍] 出售Java考試券1張
laimicky
[問題] 關於File的constructor
DisdainU
[問題] Processing could not run the sketch
lovableyuki
[問題] 請問應如何防護JAVA APPLET被反組譯
tmot
[問題] path(已解決,感謝各位
puresugar
[問題] 函式還沒執行完程式就結束了
gn301046
Links
booklink
Contact Us: admin [ a t ] ucptt.com