代码性能差距

代码一:


for (int i = 0; i < 100; i++) {
Object a = new Object() ;
//....
}

代码二:

Object a ;
for (int i = 0; i < 100; i++) {
a = new Object() ;
//....
}

代码一和代码二之间的性能有差距吗?差距代码?

你那样写有什么意义吗?
新建了100个相同的object,还没什么用?

Object a = new Object();
for (int i = 0; i < 100; i++) {
a.method();
}

2013-08-14 14:34 "@xianghx
"的内容
你那样写有什么意义吗?
新建了100个相同的object,还没什么用? ...

100应该改成count表示虚数,Object代表实际的业务对象,可能要循环操作业务

如果换成这种呢!
代码一:


for (int i = 0; i < count; i++) {
List a = s[i].getList() ;
//....
}

代码二:

List a;
for (int i = 0; i < 100; i++) {
a = s[i].getList() ;
//....
}

性能应该一样吧,占内存就不知道了哪个多点,但指针也就32/64位,不会太大。编译器会优化,a压栈,函数调用完后,变量会释放内存。我去测一下
如果是C一般会选第二种,
JAVA C#之类的用第一种的多。

我测了下,生成10亿对象也没有什么区别,所以用第一种就好了,这种好理解,用的人也多。

2013-08-14 18:36 "@xianghx
"的内容
我测了下,生成10亿对象也没有什么区别,所以用第一种就好了,这种好理解,用的人也多。 ...

我也感觉是,但是不是很肯定!

两种方法都是新建100个对象,性能肯定没差别。问题是为何要这样新建对象,而不是在循环外新建,然后调用方法。