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

運行結果內存

效率差異達到近百倍了虛擬機

相關文章
相關標籤/搜索