Bonjour à tous,

Je me pose une question concernant les propriété "static final". Je sais que c'est des propriété partagées par plusieurs objets.
Mais est-ce qu'ils sont partagés en mémoire ? C'est à dire est-ce que toutes les objets utilisant une même propriété "static final" utilisent le même pointeur vers cette propriété ?

J'utilise beaucoup de static final dans mes classes pour partager des String ou des objets plus complexe, et je ne voudrais pas saturer la mémoire.
Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public interface IMonController{
     static final String PAGE_TITLE = "Le titre de ma page";
     static final Menu   PAGE_MENU  = new Menu("item1", "item2","item3");
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public class MonAdminController implements IMonController {
     //...
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public class MonUserController implements IMonController {
     //...
}
Est-ce que MonAdminController et MonUserController partagent les même pointeurs vers les propriétés PAGE_TITLE et PAGE_MENU ? A ce moment là il n'y aurait qu'une seule instance de chaque propriété en mémoire.
Ou bien est ce que chacune des classes instancie leurs propres propriétés lors de la construction de l'objet ? A ce moment il y aurait autant de propriétés instanciées en mémoire que d'objet ? (et ça serait dommage car il s'agit de constantes ^^)