Java内存堆和栈运行时的差异

Java虚拟机将原始数据类型和对象的指针放在栈内存中,将对象放在堆内存中,以一段计数的代码来看一下堆和栈的开销差异,第一段j的数据类型是long,第二段的数据数型是Longjava

指针

public class CountTest {
    public static void main(String[] args) {
        long start=System.currentTimeMillis();
        long j=0L;
        for(int i=100000000;i>0;i--){
            j++;
        }
        System.out.println(System.currentTimeMillis()-start);
        System.out.println("j="+j);
    }
}

运行结果code

对象

public class CountTest {
    public static void main(String[] args) {
        long start=System.currentTimeMillis();
        Long j=0L;
        for(int i=100000000;i>0;i--){
            j++;
        }
        System.out.println(System.currentTimeMillis()-start);
        System.out.println("j="+j);
    }
}

运行结果内存

效率差异达到近百倍了虚拟机

相关文章
相关标签/搜索