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

avec Java Discussion :

Opération d'assignation d'un Float


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2005
    Messages : 168
    Points : 85
    Points
    85
    Par défaut Opération d'assignation d'un Float
    Bonjour,

    Je suis en train de me poser la question de ce qui se passe lors de l'assignation d'un objet Float. Que ce passe-t-il lorsque j'execute le code suivant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Float f = 1f;
    f = 2f;
    En d'autres termes, y a-t-il création d'un nouvel objet Float lors de la second assignation ou seul l'attribut 'value' de Float est modifié ?

    Merci d'avance pour toute aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Bonjour,

    Les Float sont immutables, ce qui veut dire qu'une fois qu'on a un objet Float, on ne peut pas changer ce que cet objet contient.

    Donc la seconde assignation ne peut pas changer la value du premier Float. La seule solution est donc de lui assigner un autre objet Float.

    En théorie cet autre Float n'a pas forcément été créé pour l'occasion. Comme les Float sont immutables, quand on en crée un, on peut le réutiliser chaque fois qu'on a besoin d'un Float de même valeur.
    Quand on fait une conversion implicite float -> Float, ce qu'on appelle l'autoboxing, le compilateur remplace grosso-modo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // ça
    Float f = 1f;
    // par ça
    Float f = Float.valueOf(1f);
    Donc, est-ce que Float.valueOf() va faire new Float() ?
    En pratique oui, en théorie c'est pas obligé et les versions de Java futures ou alternatives pourraient faire autrement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Python 3.X] Opérations sur floats
    Par Dayan42 dans le forum Général Python
    Réponses: 2
    Dernier message: 25/06/2015, 11h10
  2. Assigner des valeurs à des float dans une structure
    Par Kai_Leng dans le forum Débuter
    Réponses: 18
    Dernier message: 03/01/2013, 23h12
  3. [SimpleXML] Opérations mathématiques sur des float
    Par CBresso dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 11/05/2012, 13h38
  4. Opération arithmétique de String à Float
    Par Shiryu57 dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2006, 10h22
  5. Réponses: 3
    Dernier message: 09/09/2005, 15h07

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