Question

  1. float ff = 1.2f;
  2. Float fo = new Float (1.2f);
  3. double fg = 3.2d;
  4. Double fh = new Double (2.1d);

Puis-je utiliser '=' entre le (1) et le (3) ou entre le (2) et le (4) ??

Était-ce utile?

La solution

Oui.

  1. Crée un ancien type de données simple (AKA, un type primitif) appelé "float".
  2. Crée un objet Java appelé Float contenant la valeur identique à (1)

En réponse aux questions de montage:

vous verrez

  1. " perte possible de précision " message si vous essayez ff = fg .
  2. " types incompatibles " si vous essayez fo = fh .
  3. fg = ff fonctionnera correctement (le flottant tient dans un double).
  4. fh = fo vous donnera toujours un "type incompatible".

Autres conseils

Oui, 2 crée un objet.

Oui, le premier est un type primitif et le second est une classe de boxe qui englobe les capacités de type primitif float, nous avons besoin du second, par exemple, pour une utilisation dans les collections. Avant que vous ayez beaucoup à faire avec la conversion de type (je pense jusqu’à Java 1.5), l’existence de classes d’emballage prend ces capacités. Plus d'information. ici

Oui. Le premier déclare une variable de type primitif float et l'initialise à 1.2.

Alors que le second déclare une variable de type référence Float , crée un objet de type Float , puis affecte une référence à la variable.

new Float (1.2f) crée à chaque fois un nouvel objet Float, qui consomme de la mémoire.

Si vous utilisez la méthode d'usine Float.valueOf (1.2f) La machine virtuelle Java peut réutiliser des instances d'objet Float existantes pour la même valeur. Il ne pourrait créer une nouvelle instance d’objet que s’il n’y avait pas déjà une instance Float avec la même valeur.

Généralement, vous voudrez utiliser Float.valueOf (1.2f) au lieu de nouveau Float (1.2f).

Notez également que les primitives et les objets fonctionnent différemment avec l'opérateur égal == .

float x1 = 1.2f;
float x2 = 1.2f;

x1 == x2  // true

Float f1 = new Float(1.2f);
Float f2 = new Float(1.2f);

f1 == f2 // false

Oui, les types primitifs ne peuvent pas être NULL, les objets peuvent. De plus, l’objet Float est associé à un ensemble de fonctions utiles.

  1. Avec cette déclaration, vous avez un type primitif float auquel vous lui avez attribué une valeur. Le type primitif est un type de données qui n'est composé d'aucun autre type de données et il ne peut pas être divisé en deux (pour l'expliquer simplement). la primitive est généralement un type intégré.

  2. Dans ce cas, vous avez créé un objet, qui contient en interne des types de données plus petits et contient également des méthodes.

La principale différence entre le type primitif float et le type d'objet est que la primitive est simplement un format de données et n'a pas de propriétés ni de méthodes.

3 = 1 fonctionnera correctement, pas le repos.

Dans les applications réelles, je vous suggère de ne pas utiliser float ou Float, ce n'est pas très précis et presque jamais la bonne solution, utilisez plutôt double ou double.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top