JVM是否在运行时在java中创建基本类型的对象? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

这可能是一个愚蠢的问题,但因为我要创建一个算术异常情况,即44/0 ...我在下面的程序中创建了这个

public class Simple{
  public static void main(String args[]){
    float a = 78.0f;
    float b= 0.0f;
    float c= a/b;
    System.out.println(c);
  }
}

结果:

Infinity

但正无穷大是Float Wrapper类中的最终静态字段。那么这是否意味着每个原语在运行时被自动装箱到包装类对象?如果没有,那么它是如何返回无限的?

java wrapper primitive-types
1个回答
2
投票

Float.POSITIVE_INFINITYFloat类的静态场,是的。但它的类型是float(不是Float),所以它本身就是一个原始的。这里没有拳击。

事实是,作为floatIEEE 754 single-precision floating point number不仅可以保持一系列常规浮点数,还可以包含一些特殊值,如±∞和NaN。由于Java没有特殊的语法来编写这些值,因此它们在Float类中作为静态字段提供。

© www.soinside.com 2019 - 2024. All rights reserved.