一直有种优化java性能的说法,就是变量应该定义在for循环外面。虽然这样写了多年的for循环,但是依旧不习惯这种别扭的写法(可读性不好)。那到底这么做有没有提升性能呢,趁着复习jvm分析下for循环。
1、首先将变量定义在里面
public void for1(HSDBBean father
) throws InterruptedException
{
for (int i
= 0; i
< 100;i
++){
HSDBBean child
= new HSDBBean("儿子", "child", 20);
child
.setParent(father
);
Thread
.sleep(100000);
}
}
2、然后将变量定义在外面
public void for2(HSDBBean father
) throws InterruptedException
{
HSDBBean child
= null
;
for (int i
= 0; i
< 100;i
++){
child
= new HSDBBean("儿子", "child", 20);
child
.setParent(father
);
Thread
.sleep(100000);
}
}
3、比较
通过比较两个方法的编译指令会发现,不管定义在外面还是里面都只是占用一个局部变量表的槽位,并不会占用更多的栈区,所以并不会影响性能