2013-05-20 3 views
0

Je développe une application sous Android. J'utilise beaucoup de variables "final static" pour définir mes constantes. Mais je suis très strict avec la mémoire utilisée par mon application. Peut-être que j'ai 200 constantes (int, string, double, ...). Il est préférable de programmer avec des variables constantes qui utilisent des nombres. Mais, à quel point est-ce efficace?Les "variables statiques finales" sont-elles efficaces en Java (Android)?

Utilisation de C je peux utiliser #define, et quand je mets:

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

Le compilateur traduit le code:

int var2 = 10; 
int var3 = 10; 

Mais en utilisant Java, je pense que toutes ces variables restent en mémoire. Il y a quelque chose d'aussi efficace que #define pour java?

+3

http://developer.android.com/training/articles/perf-tips.html. vérifiez le lien. – Raghunandan

+3

Plus précisément http://developer.android.com/training/articles/perf-tips.html#UseFinal –

+0

final statique il est moyen de créer une constante en Java – Blackbelt

Répondre

3

Si vous voulez utiliser quelque chose de similaire à vous devriez faire quelque chose comme C de ifdef:

final static boolean COMPILE_THIS = false; 

Cela entraînera le code suivant ne pas faire partie de votre programme (« compilé »):

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

Google utilise beaucoup cette technique dans le code Android quand il ne veut pas en "compiler" certaines parties.

Questions connexes