这两个陈述之间有什么区别吗?

Joh*_*nna 3 java floating-point primitive types

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

我可以在(1)和(3)之间或(2)和(4)之间使用'='吗?

Bob*_*oss 21

是.

  1. 制作一个名为"float"的普通旧数据类型(AKA是一种原始类型).
  2. 创建一个名为Float的Java对象,该对象包含恰好与(1)相同的值

回应编辑问题:

你会看见

  1. 如果你尝试,"可能会失去精确度"的信息ff = fg.
  2. "不兼容的类型",如果你尝试fo = fh.
  3. fg = ff 将工作正常(浮动适合双倍).
  4. fh = fo 仍然会给你一个"不兼容的类型".


Cod*_*ick 7

是的,2创建一个Object.


Art*_*ger 7

是的,第一个是原始类型,第二个是包装原始浮点类型功能的装箱类,我们需要第二个例如用于集合.在你不得不经常进行类型转换(我认为直到Java 1.5)之前,包装类的存在需要这些功能.更多信息.这里