【JVM篇】变量定义在for循环内是否影响性能

tech2024-11-15  16

一直有种优化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、比较

通过比较两个方法的编译指令会发现,不管定义在外面还是里面都只是占用一个局部变量表的槽位,并不会占用更多的栈区,所以并不会影响性能

最新回复(0)