Pregunta

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

¿Puedo usar '=' entre (1) y (3) o entre (2) y (4) ??

¿Fue útil?

Solución

Sí.

  1. Hace un tipo de datos antiguo simple (AKA un tipo primitivo) llamado "flotante".
  2. Crea un objeto Java llamado Float que contiene ese valor que es idéntico a (1)

Respondiendo a las preguntas de edición:

Verás

  1. " posible pérdida de precisión " mensaje si intenta ff = fg .
  2. " tipos incompatibles " si prueba fo = fh .
  3. fg = ff funcionará bien (el flotador cabe en doble).
  4. fh = fo aún le dará un " tipos incompatibles " ;.

Otros consejos

Sí, 2 crea un objeto.

Sí, el primero es un tipo primitivo y el segundo es una clase de boxeo que envuelve las capacidades del tipo flotante primitivo, necesitamos el segundo, por ejemplo, para usar en las colecciones. Antes de que tuvieras que lidiar mucho con la conversión de tipos (creo que hasta Java 1.5) ahora la existencia de clases wrappers toma esas capacidades. Más información. aquí

Sí. El primero declara una variable del tipo primitivo float y la inicializa a 1.2.

Mientras que el segundo declara una variable del tipo de referencia Float , crea un objeto de tipo Float y luego asigna una referencia a la variable.

new Float (1.2f) crea un new objeto Float cada vez, consumiendo memoria.

Si utiliza el método de fábrica Float.valueOf (1.2f) JVM puede reutilizar instancias de objetos Float existentes para el mismo valor. Podría crear una nueva instancia de objeto solo si aún no existe una instancia de Float con el mismo valor.

Por lo general, querrá usar Float.valueOf (1.2f) en lugar del nuevo Float (1.2f).

También tenga en cuenta que las primitivas y los objetos funcionan de manera diferente con el operador igual == .

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í, los tipos primitivos no pueden ser NULL, los objetos sí. Además, el objeto Float tiene un montón de útiles funciones de utilidad adjuntas.

  1. Con esta declaración, tiene un tipo flotante primitivo y le asigna un valor. El tipo primitivo es un tipo de datos que se compone de ningún otro tipo de datos y no se puede dividir en el futuro (para explicarlo simplemente). primitivo es generalmente un tipo integrado.

  2. En este caso, ha creado un objeto e internamente consta de tipos de datos más pequeños y también contiene métodos.

La principal diferencia entre el tipo flotante de tipo primitivo y el tipo de objeto es que el primitivo es simplemente un formato para datos y no tiene propiedades ni métodos.

3 = 1 funcionará bien, el resto no.

En aplicaciones reales, le sugiero que no use float o Float, no es muy preciso y casi nunca es la solución correcta, use double o Double en su lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top