Java中的“最终静态变量”是否有效(Android)?

时间:2013-05-20 12:48:51

标签: java android static final c-preprocessor

我正在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有效吗?

1 个答案:

答案 0 :(得分:3)

如果你想使用类似于C ifdef的东西,你应该做类似的事情:

final static boolean COMPILE_THIS = false;

这将导致以下代码不属于您的程序(“已编译”):

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

Google不希望“编译”部分内容时,会在Android代码中大量使用此技术。

相关问题