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 { //... }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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public class MonUserController implements IMonController { //... }
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 ^^)
Partager