IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Tailles des objets "null" en Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2015
    Messages : 21
    Par défaut Tailles des objets "null" en Java
    Bonjour les développeurs,
    J'ai une petite question svp losque je déclare un objet en java quelle est sa taille en mémoire?
    et puis lorsque je l'affecte à "null" est ce que sa taille en mémoire change??
    et si déclare un objet null combien ça prend de bits mémoires??
    merci infiniment

  2. #2
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Bonjour à toi
    Je vais considérer que le fait de "déclarer un objet" consiste en son instanciation.
    Quand tu instancies un nouvel objet, java a besoin de deux éléments : le pointeur vers la zone mémoire de l'objet (qui prend de la place, 32 ou 64 bits selon ton système) et la taille nécessaire à stocker tous les éléments de l'objet : donc autant de pointeurs qu'il y a de références d'objets déclarés. Pour les types primitifs (int, boolean, long, ...), une taille est attribuée (mais difficile de dire combien, ça dépend de la JVM ça)

    Quand tu déclares que ton objet est null, ce que tu fais, c'est que tu effaces la référence vers ton objet. Techniquement, ton objet est toujours là et prend toujours de la place en mémoire (même s'il devient éligible pour un passage au ramasse-miettes : le garbage collector qui se charge de désallouer la mémoire utilisée)

    Si tu déclares un objet à null, tu déclares une référence vers rien, donc ça prends la place d'une référence vers une zone mémoire, soit le nombre de bits utilisés par la machine (32 ou 64).

    Il existe cependant des techniques de compression des pointeurs mémoire qui font que seule une partie de la valeur du pointeur est réservée pour gagner de la place (et pouvoir faire des références sur 2 pointeurs sur 32 bits sur un système en 64 par exemple)


    Techniquement, ce qui prend de la place, c'est pas les références, c'est les valeurs stockées à l'adresse mémoire indiquée par ta référence !

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Om yassoufa Voir le message
    Bonjour les développeurs,
    J'ai une petite question svp losque je déclare un objet en java quelle est sa taille en mémoire?
    On déclare une variable:
    Object o;
    Ca prends l'espace nécessaire pour stocker une référence. Typiquement 32 ou 64bits

    On instancie un object
    new XYZ()
    Cette objet occupe la somme des ses données propres (champs) + une référence vers sa classe de définition (32 / 64 bits)

    c'est une approximation, la jvm a différentes techniques d'optimisations qui peuvent entrer en jeu.

  4. #4
    Membre averti
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2015
    Messages : 21
    Par défaut
    merci infinement

Discussions similaires

  1. Utilitaire pour obtenir la taille des objets Access
    Par =JBO= dans le forum Contribuez
    Réponses: 14
    Dernier message: 19/08/2023, 19h22
  2. [WCF] Limitation dans la taille des objets
    Par dev01 dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 30/08/2012, 08h18
  3. taille des objets en java
    Par tarik1099 dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2007, 20h59
  4. Utiliser des Objets PHP en Java
    Par nako dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 09/05/2007, 14h05
  5. [FLASH 8] Taille des objets et zoom
    Par Yukio dans le forum Flash
    Réponses: 2
    Dernier message: 27/09/2005, 05h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo