我正在Android中开发一款应用。我使用了很多"final static"
变量来定义我的常量。但我对我的应用程序使用的内存非常严格。
也许我有200个常量(int,string,double,...)。使用使用数字的常量变量进行编程要好得多。但是,这有多高效?
使用C我可以使用#define
,当我放入:
#define constant 10
int var2 = constant;
int var3 = constant;
编译器将代码转换为:
int var2 = 10;
int var3 = 10;
但是使用Java,我认为所有这些变量都留在内存中。对于java来说,#define
有效吗?
答案 0 :(得分:3)
如果你想使用类似于C ifdef
的东西,你应该做类似的事情:
final static boolean COMPILE_THIS = false;
这将导致以下代码不属于您的程序(“已编译”):
if (COMPILE_THIS) {
printToScreen("HELLO");
}
Google不希望“编译”部分内容时,会在Android代码中大量使用此技术。