0

我正在开发一个 Android 应用程序。我使用很多"final static"变量来定义我的常量。但我对我的应用程序使用的内存非常严格。

也许我有 200 个常量(int、string、double、...)。使用使用数字的常量变量进行编程要好得多。但是,这效率如何?

使用 CI 可以使用#define,当我放:

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

编译器将代码转换为:

int var2 = 10;
int var3 = 10;

但是使用 Java,我认为所有这些变量都保留在内存中。有什么比#definejava更高效的东西吗?

4

1 回答 1

3

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

final static boolean COMPILE_THIS = false;

这将导致以下代码不是您程序的一部分(“已编译”):

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

当 Google 不想“编译”其中的一部分时,Google 会在 Android 代码中大量使用这种技术。

于 2013-05-20T12:56:34.447 回答