【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131129886
出自【进步*于辰的博客】
文章目录
- 1、概述
- 2、字段摘要
- 3、构造方法摘要
- 4、方法摘要
- 4.1 byte byteValue()
- 4.2 static int compare(float f1, float f2)
- 4.3 int compareTo(Float anotherFloat)
- 4.4 double doubleValue()
- 4.5 boolean equals(Object obj)
- 4.6 static int floatToIntBits(float value)
- 4.7 static native int floatToRawIntBits(float value)
- 4.8 float floatValue()
- 4.9 int hashCode()
- 4.10 static native float intBitsToFloat(int bits)
- 4.11 int intValue()
- 4.12 boolean isInfinite()
- 4.13 static boolean isInfinite(float v)
- 4.14 boolean isNaN()
- 4.15 static boolean isNaN(float v)
- 4.16 long longValue()
- 4.17 static float parseFloat(String s)
- 4.18 short shortValue()
- 4.19 static String toHexString(float f)
- 4.20 String toString()
- 4.21 static String toString(float f)
- 4.22 static float valueOf(float f)
- 4.23 static float valueOf(String s)
- 4.24 static int hashCode(float value)
- 最后
1、概述
继承关系:
- java.lang.Object
- java.lang.Number
- java.lang.Float
- java.lang.Number
所有已实现的接口:
Serializable、Comparable<Float>
public final class Float extends Number implements Comparable<Float>
Float 类在对象中包装了一个 float 基本类型的值。Float 类型的对象包含一个 float 类型的字段。
此外,此类提供了几种方法,可在 float 类型和 String 类型之间互相转换,并且还提供了处理 float 类型时非常有用的其他一些常量和方法。
从以下版本开始:
JDK1.0
另请参见:
序列化表格
2、字段摘要
2.1 static float MAX_VALUE
保持 float 类型的最大正有限大值的常量,最大正有限大值为 (2 - 2-23) * 2127。
public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f
2.2 static float MIN_VALUE
保持 float 类型数据的最小正非零值的常量,最小正非零值为 2-149。
public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
如何计算MAX_VALUE/MIN_VALUE
的值?这涉及到浮点数的二进制。推荐一篇博文《浮点数(小数)在计算机中如何用二进制存储?》。
当然,尽管已明了如何计算浮点数的二进制,但具体如何计算MAX_VALUE/MIN_VALUE
的值,暂无头绪。
2.3 static int SIZE
表示一个 float 值所使用的位数。
public static final int SIZE = 32;// 占4个字节
2.4 static Class<Float> TYPE
表示 float 基本类型的 Class 实例。
public static final Class<Float> TYPE = (Class<Float>) Class.getPrimitiveClass("float");
getPrimitiveClass()
见Class类的第3.1项,即返回float.class
。
2.5 其他常量
public static final float NaN = 0.0f / 0.0f;// 非数字
NaN
是“非数字”,如:正负无穷大、Math.sqrt(负数)
、Integer.parseInt(字符串)
,表示“无效数字”,实际上仍是数值类型。
public static final float POSITIVE_INFINITY = 1.0f / 0.0f;// 正无穷大
public static final float NEGATIVE_INFINITY = -1.0f / 0.0f;// 负无穷大
理论上,正 / 负无穷大也是NaN
,但是:
Float.isNaN(Float.POSITIVE_INFINITY);// false
Float.isNaN(Float.NEGATIVE_INFINITY);// false
Float.isNaN(Float.NaN);// true
暂不知为何。
3、构造方法摘要
属性说明:
private final float value;
3.1 double value
构造一个新分配的 Float 对象,它表示转换为 float 类型的参数。
3.2 float value
构造一个新分配的 Float 对象,它表示基本的 float 参数。
3.3 String s
构造一个新分配的 Float 对象,它表示用字符串表示的 float 类型的浮点值。
public Float(String s) throws NumberFormatException {
value = parseFloat(s);// 调用 4.17项,String → float
}
4、方法摘要
4.1 byte byteValue()
返回这个 Float 值对应的 byte 值(它被强制转换为一个 byte)。
4.2 static int compare(float f1, float f2)
比较两个指定的 float 值。
public static int compare(float f1, float f2) {
if (f1 < f2)
return -1; // Neither val is NaN, thisVal is smaller
if (f1 > f2)
return 1; // Neither val is NaN, thisVal is larger
// Cannot use floatToRawIntBits because of possibility of NaNs.
int thisBits = Float.floatToIntBits(f1);
int anotherBits = Float.floatToIntBits(f2);
return (thisBits == anotherBits ? 0 : // Values are equal
(thisBits < anotherBits ? -1 : // (-0.0, 0.0) or (!NaN, NaN)
1)); // (0.0, -0.0) or (NaN, !NaN)
}
后续解析。
4.3 int compareTo(Float anotherFloat)
从数字上比较两个 Float 对象。
public int compareTo(Float anotherFloat) {
return Float.compare(value, anotherFloat.value);// 调用上1项
}
4.4 double doubleValue()
返回这个 Float 对象的 double 值。
4.5 boolean equals(Object obj)
将这个对象与指定的对象进行比较。
4.6 static int floatToIntBits(float value)
根据 IEEE 754 的浮点“单一形式”中的位布局,返回指定浮点值的表示形式。
publicstatic int floatToIntBits(float value) {
int result = floatToRawIntBits(value);
// Check for NaN based on values of bit fields, maximum
// exponent and nonzero significand.
if ( ((result & FloatConsts.EXP_BIT_MASK) ==
FloatConsts.EXP_BIT_MASK) &&
(result & FloatConsts.SIGNIF_BIT_MASK) != 0)
result = 0x7fc00000;
return result;
}
后续解析。
由第9项可知,此方法返回的是value
对应的hashcode
。
4.7 static native int floatToRawIntBits(float value)
根据 IEEE 754 的浮点“单一形式”中的位布局,返回指定浮点值的表示形式,并保留非数字 (NaN
) 值。
示例:
int hash = Float.floatToIntBits(2023.5f);
int xx = Float.floatToRawIntBits(2023.5f);
sout hash;// 打印:1157427200
sout xx;// 打印:1157427200
可见,2次打印的结果一致。可认为,在一般情况下,此方法与上1项的作用相同。
4.8 float floatValue()
返回这个 Float 对象的 float 值。
4.9 int hashCode()
返回这个 Float 对象的哈希码。
public int hashCode() {
return Float.hashCode(value);
}
public static int hashCode(float value) {
return floatToIntBits(value);// 调用第 6项
}
4.10 static native float intBitsToFloat(int bits)
返回对应于给定的位表示形式的 float 值。
示例:
int hash = Float.floatToIntBits(2023.5f);
sout Float.intBitsToFloat(hash);// 打印:2023.5
由第6项可知,floatToIntBits()
返回的是hashcode
。因此,此方法返回的是bits
对应的 float 值。
4.11 int intValue()
返回这个 Float 值对应的 int 值(它被强制转换为一个 int)。
4.12 boolean isInfinite()
如果这个 Float 值的大小是无穷大,则返回 true,否则返回 false。
public boolean isInfinite() {
return isInfinite(value);// 调用下 1项
}
4.13 static boolean isInfinite(float v)
如果指定数字的大小是无穷大,则返回 true,否则返回 false。
public static boolean isInfinite(float v) {
return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);
}
后续解析。
4.14 boolean isNaN()
如果这个 Float 值是一个非数字 (NaN) 值,则返回 true,否则返回 false。
public boolean isNaN() {
return isNaN(value);// 见下1项
}
4.15 static boolean isNaN(float v)
如果指定的数字是一个非数字 (NaN) 值,则返回 true,否则返回 false。
public static boolean isNaN(float v) {
return (v != v);
}
尚不理解。
4.16 long longValue()
返回这个 Float 值对应的 long 值(它被强制转换为一个 long)。
4.17 static float parseFloat(String s)
返回一个新的 float 值,该值被初始化为用指定 String 表示的值,这与 Float 类的 valueOf()
产生的值类似。
public static float parseFloat(String s) throws NumberFormatException {
return FloatingDecimal.parseFloat(s);
}
后续解析。
valueOf()
见第23项。
4.18 short shortValue()
返回这个 Float 值对应的 short 值(它被强制转换为一个 short 值)。
4.19 static String toHexString(float f)
返回 float 参数的十六进制字符串表示形式。(暂未可知)
4.20 String toString()
返回这个 Float 对象的字符串表示形式。
public String toString() {
return Float.toString(value);// 调用下 1项
}
4.21 static String toString(float f)
返回 float 参数的字符串表示形式。
public static String toString(float f) {
return FloatingDecimal.toJavaFormatString(f);
}
后续解析。
4.22 static float valueOf(float f)
返回表示指定的 float 值的 Float 实例。
public static Float valueOf(float f) {
return new Float(f);
}
4.23 static float valueOf(String s)
返回保持用参数字符串 s 表示的 float 值的 Float 对象。
public static Float valueOf(String s) throws NumberFormatException {
return new Float(parseFloat(s));
}
parseFloat()
见第17项。
4.24 static int hashCode(float value)
返回指定 float 值的哈希码。
public static int hashCode(float value) {
return floatToIntBits(value);// 调用第 6项
}
最后
如果大家需要Java-API文档,我上传了《Java-API文档-包含5/8/11三个版本》。
本文暂缓更新。