Frage

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

Kann ich '=' zwischen dem (1) und (3) oder zwischen dem (2) und (4) ??

War es hilfreich?

Lösung

Ja.

  1. Macht einen einfachen alten Datentypen (AKA ein primitiver Typ) genannt "float".
  2. Macht ein Java-Objekt namens Float, die diesen Wert hält, die (1)
  3. identisch sein geschieht

Als Antwort auf die Fragen bearbeiten:

Sie werden sehen,

  1. "möglicher Verlust der Präzision" Nachricht, wenn Sie versuchen, ff = fg.
  2. "inkompatible Typen", wenn Sie versuchen, fo = fh.
  3. fg = ff wird funktionieren (der Schwimmer passt in ein Doppelzimmer).
  4. fh = fo gibt Ihnen noch einen "inkompatible Typen".

Andere Tipps

Ja, 2 erzeugt ein Objekt.

Ja, erste ist eine primitive Art und die zweite ist eine Box-Klasse, die Fähigkeiten der primitiven Typ float Wraps, müssen wir zweite beispielsweise für den Einsatz in den Sammlungen. Bevor Sie viel mit Typumwandlung zu tun hatten (ich glaube, bis Java 1.5) nun die Existenz von Wrapper-Klassen dieser Fähigkeiten nimmt. Mehr Informationen. hier

Ja. Der erste deklariert eine Variable des Urtyp float und initialisiert sie auf 1,2.

Während der zweite eine Variable des Float Referenztyp erklärt, schafft ein Objekt vom Typ Float und ordnet dann einen Verweis auf die Variable.

new Float (1.2f) erzeugt ein neues Float-Objekt jedes Mal, Speicher verbrauchen.

Wenn Sie Factory-Methode verwenden Float.valueOf (1.2f) JVM können bestehende Float Objektinstanzen für den gleichen Wert wiederverwenden. Es könnte eine neue Objektinstanz nur erstellen, wenn es nicht bereits eine Float-Instanz mit dem gleichen Wert.

In der Regel sollten Sie Float.valueOf (1.2f) anstelle von neuen Float (1.2f).

verwenden,

Beachten Sie auch, dass Primitiven und Objekte funktionieren anders mit gleich Operator == .

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

Ja primitive Typen können nicht NULL sein, Objekte können. Auch das Float-Objekt hat eine Reihe von nützlichen Hilfsfunktionen an sie.

  1. Mit dieser Erklärung Sie einen primitiven Typ float hat und es einen Wert zugewiesen. Urtyp ist ein Datentyp, der von keinem anderen Datentyp zusammengesetzt ist, und es kann nicht furthur aufgeteilt werden (zu erklären, es einfach). primitiv ist in der Regel eine builtin Art.

  2. In diesem Fall, dass Sie ein Objekt erstellt haben und es intern besteht aus kleineren Datentypen und enthält auch Methoden.

Der Hauptunterschied zwischen primitivem Typ float und Objekttyp ist die primitive ist einfach ein Format für Daten und hat keine Eigenschaften oder Methoden.

3 = 1 wird gut funktionieren, Rest nicht.

In realen Anwendungen Ich schlage vor, Sie nicht float verwenden oder Float, es ist nicht sehr präzise und so gut wie nie die richtige Lösung, verwenden Sie doppelte oder Doppel statt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top