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

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

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);
    }
}

运行结果

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);
    }
}

运行结果

效率差别达到近百倍了

猜你喜欢

转载自my.oschina.net/u/2604795/blog/1637771