Salut,

Je me posais une question sur la place que prenne en mémoire les variables qui référencent un objet. Je me prend un exemple simple pour fixer les idées :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public class Test {
 
	public static void main(String[] args) {
 
		Test t1 = new Test();;
		Test t2 = null;
		Test t3;
               // reste du code
Pour t1:
je crée un objet en mémoire, sa référence est donné par t1 et vaut par exemple Test@15db9742
une adresse codée donc sur 32 bits qui correspond à l'adresse où se situe réellement l'objet en mémoire.

Pour t2 :
t2 ne référence aucun objet. Si j'utilise un system.ou.println(t2), j'obtiens bien sûr null, mais il y a bien un espace mémoire réservé pour stocker la variable t2 (même si cette variable pointe vers aucun objet). Peut on réellement connaître la valeur que prend cette variable ?

Pour t3 :
je ne vois pas vraiment la différence avec t2. t3 n'est pas initialisé donc ne pointe vers aucun objet. C'est comme si on vait t3 = null, non ? Y a t il un espace mémoire réservé pour t3 ? Peut on connaitre la valeur qui est stocké dans t3 ?

Merci