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倍
所以大數據量計算時,盡量使用基本數據類型,不要使用對象。