2013-03-19 63 views
2

我通常爲所有東西製作類,以將幾種類型組合在一起。
例如,對於合併int和double創建'太多'類是一個好主意嗎?

public class IntAndDouble{ 
     public final int INT; 
     public final double DOUBLE; 
     public IntAndDouble(int i,double d){INT = i; DOUBLE = d;} 
} 

很像經常創造一個小struct

但我注意到,對於像這樣的每一個小類中,有在jar
了〜1KB(300-1000字節)文件和創建這些小班的10-15時,有可能是增加〜 30KB在jar

這不會是真正的Java問題,其中30KB是幾乎可以忽略不計,
但在J2ME其中常規應用程序通常約爲200KB,30KB是一個巨大的意義。

什麼是在J2ME中創建「小結構」的最佳方式?

+1

沒有辦法。如果您使用多個相同類型的字段,則可以使用數組,但我確定這不是您需要的。 JavaME幾乎要求你不要太面向對象。但是,在JavaSE中,您的類應該具有有意義的名稱。你基本上正在實現元組... – 2013-03-19 19:07:25

+1

我認爲說「在JavaME中一個普通的應用通常在200kb左右」是不正確的。這不是JavaME。這是(舊)設備。較新的支持JavaME的手機可以輕鬆運行3-4mb的應用程序。換句話說:如果你堅持支持舊手機,只有擔心。 – 2013-03-20 05:34:24

回答

1

除非您使用的是具有少量內存的真正舊手機,否則用於保存「結構化」類的代碼的內存量不太可能會很大。

注意:「.class」文件的大小並不反映該類的內存佔用空間。 「.class」文件包含很多東西(類型/方法/類名稱和簽名等),這些東西只在類加載和鏈接時才使用。之後,通常會收集垃圾。

我不知道輕量級課程的實際記憶成本是多少(而且我無法測量),但我預測的數量級比您所說的要少。

什麼是在J2ME中製作'small struct'的最佳方法?

在大多數情況下,正是這樣,你有你的IntAndDouble例如類來完成它。

如果這些字段都具有相同的基本類型,則可以改爲使用數組;例如int[]Object[],但您會以其他方式「付費」。

(謹防過早優化的!)

0

我們在世界瞄準西非非常弱的設備和其他高科技較低的地區。我們發現許多設備只能處理總共500k個應用和數據(針對所有應用)。全世界有相當多的消費者使用這些類型的設備。所以如果你要超級普及,我仍然會考慮做一些事情,讓我的代碼儘可能小。

相關問題