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 :

equivalent sizeof ?


Sujet :

Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut equivalent sizeof ?
    bonjour,
    je veux savoir la qui peut occuper mon objet (taille max),
    comme en langage c, sizeof d'une structure donne la taille de la struct max,
    j'ai converti la struct en une class,
    merci

  2. #2
    Membre Expert
    Avatar de nbenbourahla
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Par défaut
    Bonjour

    Est ce que tu pourrai mieux préciser pourquoi tu voudrais utiliser un equivalent de sizeof en java ?

    Sa m'aidera a trouver une solution pour toi.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut
    en faite je calcul la rotation d'un text pour l'imprimer sur une imprimante spécilale.
    je teste un coef de rotation si il est supperieur à la taille de l'objet divisé par ça taille max :
    j'ai une classe PatternRotation {char status, char direction}
    je construit un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PatternRottaion rotaionValue;
    je l'initialise, et je calcule ma rotation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(maRotaion > (rotationValue.length / sizeof(PatternRotation) //equivalent de sizeof ???
    merci

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Citation Envoyé par rimas2009 Voir le message
    en faite je calcul la rotation d'un text pour l'imprimer sur une imprimante spécilale.
    je teste un coef de rotation si il est supperieur à la taille de l'objet divisé par ça taille max :
    j'ai une classe PatternRotation {char status, char direction}
    je construit un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PatternRottaion rotaionValue;
    je l'initialise, et je calcule ma rotation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(maRotaion > (rotationValue.length / sizeof(PatternRotation) //equivalent de sizeof ???
    merci
    Alors de deux choses l'une, soit je n'ai rien compris de ce que tu veux faire, soit ta méthode est bancale, mais le sizeof ne fait que donner la place mémoire occupé par l'objet.
    Sauf pour certaine astuce un peu limite, ou dans certains cas vraiment spéciaux, tu n'en as besoin que pour effectuer tes allocations mémoires. Or Java fait toutes les allocations tout seul comme un grand.

    Pourrais tu être plus explicite sur ce que tu veux faire exactement s'il te plais ?

  5. #5
    Membre Expert
    Avatar de nbenbourahla
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Par défaut
    Ben enfaite sizeof n'existe pas JAVA et aucun equivalent n'a etait crée.

    Mais en java la taille de tous les types sont fixe, donc tu peux definir la taille a la main.

    Regarde ce lien , en esperant que sa puisse t'aider

    http://mindprod.com/jgloss/sizeof.html

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je crois qu'il nous manque un élément important. Qu'entends-tu par "rotation d'un texte" ?

    Et comment calcule-t-on cela ?

    Dans tous les cas en Java tu ne peux pas connaître la taille mémoire allouée à un objet parce que cette valeur peut potentiellement changer (et est en général peu pertinente car Java gère la plupart des données via des pointeurs). Ce genre d'information, si elle peut être précieuse en programmation bas niveau, est totalement inutile pour le type de programmation pour laquelle on utilise le langage Java. En résumé il doit y avoir un autre moyen de faire ce que tu demande et c'est pour cela qu'on te demande plus de précisions.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Par défaut
    salut
    Le langage java n'a pas besoin du sizeof comme en C/C++, car les types primitif (boolean, int, long..) ont une taille fixe sur toutes les plateformes (Windows, Linux, 32bit, 64bit..)
    La taille d'une classe (structure) est la même partout. En simplifiant : si ta classe X contient n attributs :
    faire la somme des attribut primitif et reference.
    sachant que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sizeof(boolean) = 1 byte
    sizeof(int)= 4 byte
    sizeof(long)= 8byte
    ...
    sizeof(reference)=sizeof(int) sur une architecture 32bit.
    sizeof(PatternRotation) = sizeof(char)+sizeof(char) =4byte
    si PatternRotation est final sinon il ya un sizeof(reference) en plus pour la table virtuel

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 896
    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 896
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par rimas2009 Voir le message
    en faite je calcul la rotation d'un text pour l'imprimer sur une imprimante spécilale.
    je teste un coef de rotation si il est supperieur à la taille de l'objet divisé par ça taille max :
    j'ai une classe PatternRotation {char status, char direction}
    je construit un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PatternRottaion rotaionValue;
    je l'initialise, et je calcule ma rotation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(maRotaion > (rotationValue.length / sizeof(PatternRotation) //equivalent de sizeof ???
    merci
    Gne ???!
    Aux dernieres nouvelles, si je ne suis pas trop rouille (ca peut etre le cas), sizeof() retourne une valeur de type size_t qui donne la taille d'un type en octets c'est a dire generalement 4 pour un char* alloue dynamiquement (malloc() ou new) ou sizeof(char)*taille du tableau pour un char[] alloue statiquement.
    Pour connaitre le nombre de caracteres d'une chaine C terminee par NULL on utilise strlen() tout comme pour connaitre le nombre de caracteres d'une std::string C++ on utilise sa methode size().
    Mais cela ne fait que donner son nombre de caracteres, cela n'a aucun rapport direct avec l'espace utilise a l'impression a l'impression qui peut dependre la DPI, de la police (et certaines polices n'ont pas des glyphes de largeur fixe...), etc...

    En Java pour calculer l'espace pris par un texte on peut utiliser (entre autre) la methode getStringBounds() de la classe Font, qui necessite donc une police, un texte et un FontRenderContext qui est fourni par le Graphics sur lequel on veut dessiner (Graphics qui peut etre fourni par l'imprimante). Attention des indices de rendu tel que l'antialiasing du texte peuvent influer sur l'espace occupe par une chaine.

    Sinon pour info, le nombre de bits (et non pas le nombre d'octets) occupe par chacun des types de base Java sont definis dans le membre static SIZE de chacun des types de base depuis Java 1.5 (ex: Integer.SIZE -en Java toujours 32-, Character.SIZE -en Java toujours 16-, etc.).
    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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2002, 09h12
  2. equivalent à explode?
    Par djridou dans le forum Langage
    Réponses: 3
    Dernier message: 28/08/2002, 11h01
  3. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

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