JAVA數組所占內存大小的對比


1.兩個數據模型

第一個是基本類型數組,第二個使用的是Float對象數組

public class SummaryModel{
   
    private float[] summaryData;

    public float[] getSummaryData() {
        return summaryData;
    }

    public void setSummaryData(float[] summaryData) {
        this.summaryData = summaryData;
    }
}
public class SummaryModel1 {
   
    private Float[] summaryData;

    public Float[] getSummaryData() {
        return summaryData;
    }

    public void setSummaryData(Float[] summaryData) {
        this.summaryData = summaryData;
    }
}

 

2.測試程序

public class Test {

    public static void main(String[] args) throws Exception {
        SummaryModel[] sms = new SummaryModel[100000];
        SummaryModel1[] sm1s = new SummaryModel1[100000];
        for(int i=0;i<100000;i++){
            SummaryModel sm = new SummaryModel(); 
            SummaryModel1 sm1 = new SummaryModel1(); 
            float[] f = new float[100];
            Float[] F = new Float[100];
            for(int j=0;j<100;j++){
                f[j] = 1000f;
                F[j] = 1000F;
            }
            sm.setSummaryData(f);
            sm1.setSummaryData(F);
            sms[i] = sm;
            sm1s[i] = sm1;
        }
        
        Thread.sleep(10000000);
        System.out.println(sms.length);
        System.out.println(sm1s.length);
    }

}

 

3.所占內存對比

 1).兩個數組同時運行

  

 2).只運行float數組

  

 3).只運行Float數組

4.總結

  可以看到在使用float數組的時候,內存使用大小基本就是float所占內存的大小即10W*100個float

  而使用Float數組時,因為Float是個對象,包括它自己的屬性值,每個Float對象所占大小為16字節,基本上是float的4倍

  所以大數據量計算時,盡量使用基本數據類型,不要使用對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM