当前位置: 首页 > 知识库问答 >
问题:

缓存实例在多大程度上用于公共浮点和双值?

薛淳
2023-03-14

对于Integer和一些其他数值类型,在调用valueOf或自动装箱基元值时,会重新使用表示-128到127范围内的值的实例。

如果不需要新的Float实例,则通常应优先使用此方法,而不是构造函数Float(Float),因为此方法可能通过缓存频繁请求的值而获得明显更好的空间和时间性能

但是,与Integer的valueOf(“此方法将始终缓存范围内的值...”)相比,此语句的确定性较低,并且没有说明可能进行此优化的一组值。那么这在实践中究竟是如何表现的呢?

共有1个答案

洪楚
2023-03-14

查看Float.valueof(JDK8)的实现,我看到它只是通过调用构造函数来创建一个新的Float对象。

public static Float valueOf(float f) {
    return new Float(f);
}

所以,它可能是未来的一个优化

 类似资料:
  • 我不明白为什么浮点值与双精度值不同。从下面的示例来看,对于相同的操作,float 提供的结果似乎与双精度型不同: 输出: 你能解释一下float和double之间的区别吗?

  • 问题内容: 我正在为一个学校项目创建一个RPN计算器。我在使用模运算符时遇到了麻烦。由于我们使用的是double数据类型,因此模数不适用于浮点数。例如,0.5%0.3应该返回0.2,但是我得到除以零的异常。 该指令说要使用fmod()。我到处都在寻找fmod(),包括javadocs,但找不到。我开始认为这是我必须创建的方法? 编辑:嗯,奇怪。我只是再次插入这些数字,它似乎工作正常……但以防万一。

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 这是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 是否有比浮点精度更好的数据类型? 问题答案: 小数数据类型 与基于硬件的二进制浮点数不同,十进制模块具有用户可更改的精度(默认为28位),可以与给定问题所需的精度一样大。 如果您对性能问题感到困扰,请查看GMPY

  • 本文向大家介绍C#浮点,双精度,十进制,包括了C#浮点,双精度,十进制的使用技巧和注意事项,需要的朋友参考一下 示例 浮动 float是.NET数据类型的别名System.Single。它允许存储IEEE 754单精度浮点数。存在此数据类型mscorlib.dll,每个C#项目在创建它们时都会隐式引用该数据类型。 大致范围:-3.4×10 38至3.4×10 38 十进制精度:6-9个有效数字 记