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