OVH Cloud OVH Cloud

Mot clé final

5 réponses
Avatar
Nicolas Buttin
Quelqu'un pourrait-il me dire à quel point l'utilisation du mot clé final
est intéressante du point de vue de l'optimisation du code ?

Pour les méthodes, je sais ke ça peut être intéressant ms je me demande à
kel point ? (un peu comme le inline en C++).

Je me pose cette kestion surtout pour les variables (ke ce soit des
références ou des types primitifs).

Si ouvs avez des liens à ce sujet, je suis preneur...

Merci :)

--

Nicolas

5 réponses

Avatar
LaFleche
Pour les méthodes, je sais ke ça peut être intéressant ms je me demande à
kel point ? (un peu comme le inline en C++).

Je me pose cette kestion surtout pour les variables (ke ce soit des
références ou des types primitifs).


ke ce soit dis.

Avatar
Marc Petit-Huguenin
Nicolas Buttin wrote:
Quelqu'un pourrait-il me dire à quel point l'utilisation du mot clé final
est intéressante du point de vue de l'optimisation du code ?

Pour les méthodes, je sais ke ça peut être intéressant ms je me demande à
kel point ? (un peu comme le inline en C++).

Je me pose cette kestion surtout pour les variables (ke ce soit des
références ou des types primitifs).

Si ouvs avez des liens à ce sujet, je suis preneur...

Merci :)



final n'est pas destine a l'optimisation, mais a aider a ecrire de
meilleurs programmes. Hotspot peut optimiser une variable qui n'est pas
final si il detecte que c'est possible. C'est pareil pour les methodes,
final ne garanti pas qu'une methode sera plus inlinee qu'une methode qui
n'est pas finale.

Avatar
Örjan Petersson
Marc Petit-Huguenin writes:

final n'est pas destine a l'optimisation, mais a aider a ecrire de
meilleurs programmes. Hotspot peut optimiser une variable qui n'est
pas final si il detecte que c'est possible.


Tout à fait d'accord mais il ne faut pas oublier les "compile-time constant
expressions" qui permet quelques optimisations simples, style

public class C1 {
static final String s = "S";
}

public class C2 {
void f() {
final String s1 = "a";
System.out.println(s1+C1.s);
}
}

où s1+C1.s est calculé par javac pendant la compilation (pas de chargement
de C1 par le JVM pendant l'exécution).

--
Orjan Petersson, Logcode SARL
The email address in the From: header is valid

Avatar
Nicolas Buttin
Merci pour vos lumières :)

"Örjan Petersson" a écrit dans le message de
news:
Marc Petit-Huguenin writes:

final n'est pas destine a l'optimisation, mais a aider a ecrire de
meilleurs programmes. Hotspot peut optimiser une variable qui n'est
pas final si il detecte que c'est possible.


Tout à fait d'accord mais il ne faut pas oublier les "compile-time
constant

expressions" qui permet quelques optimisations simples, style

public class C1 {
static final String s = "S";
}

public class C2 {
void f() {
final String s1 = "a";
System.out.println(s1+C1.s);
}
}

où s1+C1.s est calculé par javac pendant la compilation (pas de chargement
de C1 par le JVM pendant l'exécution).

--
Orjan Petersson, Logcode SARL
The email address in the From: header is valid



Avatar
Nicolas Buttin
"LaFleche" a écrit dans le message de
news:4088544f$0$512$
Pour les méthodes, je sais ke ça peut être intéressant ms je me demande
à


kel point ? (un peu comme le inline en C++).

Je me pose cette kestion surtout pour les variables (ke ce soit des
références ou des types primitifs).


ke ce soit dis.


Pas compris...