2013-05-20 32 views
0

我正在開發Android應用程序。我用了很多"final static"變量來定義我的常量。但我對我的應用程序使用的內存非常嚴格。Java(Android)中的「最終靜態變量」是否有效?

也許我有200個常量(int,string,double,...)。使用數字的常量變量編程要好得多。但是,這個效率如何?

用C,我可以使用#define,當我把:

#define constant 10 
int var2 = constant; 
int var3 = constant; 

編譯器編譯的代碼:

int var2 = 10; 
int var3 = 10; 

但使用Java,我認爲所有這些變量保留在內存中。對於java,有什麼如此高效的#define

+3

http://developer.android.com/training/articles/perf-tips.html。檢查鏈接。 – Raghunandan

+3

具體http://developer.android.com/training/articles/perf-tips.html#UseFinal –

+0

最終靜態它是在java中創建常量的方法 – Blackbelt

回答

3

如果你想用類似於C的ifdef東西,你應該這樣做:

final static boolean COMPILE_THIS = false; 

這將導致下面的代碼不被你的程序(「編譯」)的一部分:

if (COMPILE_THIS) { 
    printToScreen("HELLO"); 
} 

當他們不想「編譯」它的一部分時,Google在Android代碼中使用了這種技術。