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

Langage Java Discussion :

taille des adresses


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut taille des adresses
    Bonjour,
    Question simple : Quelle est la taille des adresses utilisées pour pointer les objets?
    Même question mais plus pratique : Un tableau d'indice int peut il ainsi permettre de gagner un peu de place? (Au detriment de la rapidité des calcus)
    Merci d'avance

    PS : avec des indices short je pense que ça doit etre le cas car cela m'étonerait que les adresses soient codées sur 2 bytes seulement...

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    4 octets...

    Mais java a un typage fort, tu ne peux pas stocker une "adresse" (référence) dans un type primitif (int, short...), tu n'as pas accès aux adresses...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    Non mais un tableau d'objets est en réalité un tableau d'adresses.
    Un tableau d'indice par contre contient seulement des adresses relatives et est donc potentiellement plus court.

    (Sachant que dans les deux cas, j'ai une autre Liste avec ces objets. Ils ne risquent pas de 'disparaitre' et je peux acceder à mes objets par indices. )

    Etant donné que c'est 4 octets, alors les int servent pas à grand chose dans ce cas la. Par contre les short devraient etre largement suffisant dans mon cas (32000) et je gagne 2 octets par objet au prix d'une addition supplémentaire (enfin j'imagine).

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par TabrisLeFol
    Non mais un tableau d'objets est en réalité un tableau d'adresses.
    Un tableau d'indice par contre contient seulement des adresses relatives et est donc potentiellement plus court.
    relatives, mais relatives à une adresse à laquelle tu n'as pas accès.

    Citation Envoyé par TabrisLeFol
    Etant donné que c'est 4 octets, alors les int servent pas à grand chose dans ce cas la. Par contre les short devraient etre largement suffisant dans mon cas (32000) et je gagne 2 octets par objet au prix d'une addition supplémentaire (enfin j'imagine).
    Une addition entre ton indice et quoi ? o_O

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Objet array[] = new Objet[42];
    // remplir
    index i = 3;
    array[i].toString();
    array[i] permet d'acceder à l'element indicé 0 et revient à calculer l'équivalent de *(&array+i*4). Ce qui est bien sur réalisé par la machine virtuelle étant que l'on ne peut pas manipuler directement les adresses. Et l'indice est un quelque sorte une addresse relative à la base de ton tableau (à un coefficient près).

    EDIT : Merci pour la taille.

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par ®om
    4 octets...
    Meme dans une JVM 64-bits ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Taille et adresse des segments
    Par Rémiz dans le forum Programmation d'OS
    Réponses: 7
    Dernier message: 04/11/2008, 00h30
  2. [info] taille des adresses des pointeurs Java
    Par TabrisLeFol dans le forum Général Java
    Réponses: 11
    Dernier message: 14/02/2006, 13h24
  3. Taille des tabulations dans un TMemo ?
    Par dergen dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/01/2003, 19h38
  4. Taille des surfaces avec DirectDraw
    Par Shakram dans le forum DirectX
    Réponses: 5
    Dernier message: 09/09/2002, 00h42
  5. Taille des champs proportionnelle...
    Par Depteam1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2002, 11h48

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