Domanda

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

Posso usare '=' tra (1) e (3) o tra (2) e (4) ??

È stato utile?

Soluzione

Sì.

  1. Rende un vecchio tipo di dati semplice (AKA un tipo primitivo) chiamato " float. "
  2. Crea un oggetto Java chiamato Float che contiene quel valore identico a (1)

Risposta alle domande di modifica:

Vedrai

  1. "possibile perdita di precisione" messaggio se provi ff = fg .
  2. "tipi incompatibili" se provi fo = fh .
  3. fg = ff funzionerà bene (il float si inserisce in un doppio).
  4. fh = fo ti fornirà comunque un tipo "incompatibile".

Altri suggerimenti

Sì, 2 crea un oggetto.

Sì, il primo è un tipo primitivo e il secondo è una classe di boxe che avvolge le capacità del tipo float primitivo, ne abbiamo bisogno per esempio per le raccolte. Prima di avere avuto a che fare molto con la conversione dei tipi (penso fino a Java 1.5) ora l'esistenza delle classi di wrapper prende quelle capacità. Maggiori informazioni. qui

Sì. Il primo dichiara una variabile del tipo primitivo float e la inizializza su 1.2.

Mentre il secondo dichiara una variabile del tipo di riferimento Float , crea un oggetto di tipo Float e quindi assegna un riferimento alla variabile.

new Float (1.2f) crea ogni volta un nuovo oggetto Float, consumando memoria.

Se si utilizza il metodo di fabbrica Float.valueOf (1.2f) JVM può riutilizzare istanze di oggetti Float esistenti per lo stesso valore. Potrebbe creare una nuova istanza di oggetto solo se non esiste già un'istanza Float con lo stesso valore.

Di solito ti consigliamo di utilizzare Float.valueOf (1.2f) anziché il nuovo Float (1.2f).

Si noti inoltre che le primitive e gli oggetti funzionano in modo diverso con l'operatore uguale a == .

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

Sì, i tipi primitivi non possono essere NULL, gli oggetti possono. Inoltre l'oggetto Float ha un mucchio di utili funzioni di utilità associate ad esso.

  1. Con questa dichiarazione hai un float di tipo primitivo e gli hai assegnato un valore. Il tipo primitivo è un tipo di dati che non è composto da nessun altro tipo di dati e non può essere diviso ulteriormente (per spiegarlo semplicemente). la primitiva è generalmente un tipo incorporato.

  2. In questo caso è stato creato un oggetto e internamente è costituito da tipi di dati più piccoli e contiene anche metodi.

La principale differenza tra float di tipo primitivo e tipo di oggetto è che la primitiva è semplicemente un formato per i dati e non ha proprietà o metodi.

3 = 1 funzionerà bene, il resto no.

Nelle applicazioni reali ti suggerisco di non usare float o Float, la sua soluzione non molto precisa e quasi mai la giusta, usa invece il doppio o il doppio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top