【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131129886
出自【进步*于辰的博客】
因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。
1、概述
继承关系:
所有已实现的接口:
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。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c6f19c9c58684c7b9aee2647b64af645.jpeg#pic_center)
其计算方法暂未可知。
2.2 static float MIN_VALUE
保持 float 类型数据的最小正非零值的常量,最小正非零值为 2-149。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/93fbab18591c41a686e4147ffb1c35ef.jpeg#pic_center)
其计算方法暂未可知。
2.3 static float NaN
保持 float 类型的非数字 (NaN) 值的常量。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6b4b8087984740f5883fd2948c5a2d8c.jpeg#pic_center)
尚不理解。
2.4 static float NEGATIVE_INFINITY
保持 float 类型的负无穷大值的常量。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4075fa8a7dd6447eb9913e8396645d2e.jpeg#pic_center)
尚不理解。
2.5 static float POSITIVE_INFINITY
保持 float 类型的正无穷大的常量。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/cf84ea429bdb4a2ebdcf6779f2ac2978.jpeg#pic_center)
尚不理解。
2.6 static int SIZE
表示一个 float 值所使用的位数。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/531582f876f14d35bd0c50f3d321d1b4.jpeg#pic_center)
可见,float
占 4 个字节。
2.7 static Class<Float> TYPE
表示 float 基本类型的 Class 实例。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/40b01cbf910e42d386d4b849c7682bad.png#pic_center)
关于getPrimitiveClass()
,见Class<T>
类的第3.1项。即返回float.class
。
3、构造方法摘要
3.1 double value
构造一个新分配的 Float 对象,它表示转换为 float 类型的参数。
3.2 float value
构造一个新分配的 Float 对象,它表示基本的 float 参数。
3.3 String s
构造一个新分配的 Float 对象,它表示用字符串表示的 float 类型的浮点值。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/26d75c8626444282bcb500dd203fa966.jpeg#pic_center)
调用parseFloat()
将 String 转为 float。关于此方法,后续补充。
4、方法摘要
4.1 byte byteValue()
返回这个 Float 值对应的 byte 值(它被强制转换为一个 byte)。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7bac646bbe3445c4bcd524ff0b1c0c60.jpeg#pic_center)
4.2 static int compare(float f1, float f2)
比较两个指定的 float 值。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/01f0b7ab46e84ea58b3447b9c1920fc8.jpeg#pic_center)
4.3 int compareTo(Float anotherFloat)
从数字上比较两个 Float 对象。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7f0c9425adb34366909d7b8deee99c3f.jpeg#pic_center)
底层调用上1项。
4.4 double doubleValue()
返回这个 Float 对象的 double 值。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/8186ff1a52ca4b54a813047ffa131bb8.jpeg#pic_center)
4.5 boolean equals(Object obj)
将这个对象与指定的对象进行比较。
4.6 static int floatToIntBits(float value)
根据 IEEE 754 的浮点“单一形式”中的位布局,返回指定浮点值的表示形式。
说明:
由第9项可知,此方法返回的是value
对应的hashcode
。
4.7 static 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 值。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6452ef3db78e4b54801ea5f0f5aa923b.jpeg#pic_center)
4.9 int hashCode()
返回这个 Float 对象的哈希码。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/77605f9214a94e8b86bdee80ff6295b4.jpeg#pic_center)
关于hashCode()
,见第24项。
4.10 static float intBitsToFloat(int bits)
返回对应于给定的位表示形式的 float 值。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0256e3ac2fe4ebb83e18431239e4e60.jpeg#pic_center)
注释太长,暂不研究。
示例:
int hash = Float.floatToIntBits(2023.5f);
sout Float.intBitsToFloat(hash);// 打印:2023.5
由第6项可知,floatToIntBits()
返回的是hashcode
。因此,此方法返回的是bits
对应的 float 值。
4.11 int intValue()
返回这个 Float 值对应的 int 值(它被强制转换为一个 int)。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/89db039ec327464398349c3a79b8cc7d.jpeg#pic_center)
4.12 boolean isInfinite()
如果这个 Float 值的大小是无穷大,则返回 true,否则返回 false。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d648eba1a3384398a54373a3b51aba87.jpeg#pic_center)
底层调用下1项。
4.13 static boolean isInfinite(float v)
如果指定数字的大小是无穷大,则返回 true,否则返回 false。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6bb3aaf64dad47b49d93d0450ebfd3c5.jpeg#pic_center)
暂不明白。
4.14 boolean isNaN()
如果这个 Float 值是一个非数字 (NaN) 值,则返回 true,否则返回 false。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/109cd53d0c7749f598e391e7b7b78df9.jpeg#pic_center)
底层调用下1项。
4.15 static boolean isNaN(float v)
如果指定的数字是一个非数字 (NaN) 值,则返回 true,否则返回 false。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f837069308c04424b396c5670b734dd8.jpeg#pic_center)
暂不理解。
4.16 long longValue()
返回这个 Float 值对应的 long 值(它被强制转换为一个 long)。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/de402da30deb41a98e8f522d365cd53a.jpeg#pic_center)
4.17 static float parseFloat(String s)
返回一个新的 float 值,该值被初始化为用指定 String 表示的值,这与 Float 类的 valueOf()
方法产生的值类似。
说明:
关于valueOf()
,见第23项。
4.18 short shortValue()
返回这个 Float 值对应的 short 值(它被强制转换为一个 short 值)。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/9ee8b9105e0243639ec00456975b91b9.jpeg#pic_center)
4.19 static String toHexString(float f)
返回 float 参数的十六进制字符串表示形式。(暂未可知)
4.20 String toString()
返回这个 Float 对象的字符串表示形式。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6556899516524ec79e722f38337553e1.jpeg#pic_center)
底层调用下1项。
4.21 static String toString(float f)
返回 float 参数的字符串表示形式。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/b8872aff834d4f59ab08fa0e20ae6945.png)
关于FloatingDecimal类,后续补充。
4.22 static float valueOf(float f)
返回表示指定的 float 值的 Float 实例。
说明:
看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/25e4390b3f614aa3bad22b5d79f36aba.jpeg#pic_center)
4.23 static float valueOf(String s)
返回保持用参数字符串 s 表示的 float 值的 Float 对象。
说明:
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/476f67e2cd434590a76bfaa18f2f2c62.jpeg#pic_center)
可见,此项与上1项的底层都是构造一个Float
。
4.24 static int hashCode(float value)
先看源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/995d97dc5bfa4c4b83ea2be2343f594b.jpeg#pic_center)
可见,底层调用了第6项。
本文暂缓更新。