Java-API简析_java.lang.Float类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131129886
出自【进步*于辰的博客】

其实我的【Java-API】专栏内的博文对大家来说意义是不大的。因为暂且没有源码讲解,而且需要看Java-API,直接看Java-API文档就行了,也不用看博文。所以呢,这篇博文主要是写给我自己看的,也就是Java-API笔记。
因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。

文章目录

  • 1、概述
  • 2、字段摘要
    • 2.1 static float MAX_VALUE
    • 2.2 static float MIN_VALUE
    • 2.3 static float NaN
    • 2.4 static float NEGATIVE_INFINITY
    • 2.5 static float POSITIVE_INFINITY
    • 2.6 static int SIZE
    • 2.7 `static Class TYPE `
  • 3、构造方法摘要
    • 3.1 double value
    • 3.2 float value
    • 3.3 String s
  • 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 int floatToRawIntBits(float value)
    • 4.8 float floatValue()
    • 4.9 int hashCode()
    • 4.10 static 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)

1、概述

Java-API简析_java.lang.Float类(基于 Latest JDK)(浅析源码)_第1张图片
Float 类在对象中包装了一个 float 基本类型的值。Float 类型的对象包含一个 float 类型的字段。

此外,此类提供了几种方法,可在 float 类型和 String 类型之间互相转换,并且还提供了处理 float 类型时非常有用的其他一些常量和方法。

从以下版本开始:
JDK1.0
另请参见:
序列化表格

2、字段摘要

2.1 static float MAX_VALUE

保持 float 类型的最大正有限大值的常量,最大正有限大值为 (2 - 2-23) * 2127
说明:
先看源码。
在这里插入图片描述
其计算方法暂未可知。

2.2 static float MIN_VALUE

保持 float 类型数据的最小正非零值的常量,最小正非零值为 2-149
说明:
先看源码。
在这里插入图片描述
其计算方法暂未可知。

2.3 static float NaN

保持 float 类型的非数字 (NaN) 值的常量。
说明:
先看源码。
在这里插入图片描述
尚不理解。

2.4 static float NEGATIVE_INFINITY

保持 float 类型的负无穷大值的常量。
说明:
先看源码。
在这里插入图片描述
尚不理解。

2.5 static float POSITIVE_INFINITY

保持 float 类型的正无穷大的常量。
说明:
先看源码。
在这里插入图片描述
尚不理解。

2.6 static int SIZE

表示一个 float 值所使用的位数。
说明:
先看源码。
在这里插入图片描述
可见,float占 4 个字节。

2.7 static Class TYPE

表示 float 基本类型的 Class 实例。
说明:
先看源码。
在这里插入图片描述
关于此字段,可以参考博文【Java-API简析_java.lang.Integer类(基于 Latest JDK)(浅析源码)】的第2.4项。

3、构造方法摘要

3.1 double value

构造一个新分配的 Float 对象,它表示转换为 float 类型的参数。

3.2 float value

构造一个新分配的 Float 对象,它表示基本的 float 参数。

3.3 String s

构造一个新分配的 Float 对象,它表示用字符串表示的 float 类型的浮点值。
说明:
先看源码。
在这里插入图片描述
调用parseFloat()将 String 转为 float。关于此方法,后续补充。

4、方法摘要

4.1 byte byteValue()

返回这个 Float 值对应的 byte 值(它被强制转换为一个 byte)。

4.2 static int compare(float f1, float f2)

比较两个指定的 float 值。
说明:
看源码。
Java-API简析_java.lang.Float类(基于 Latest JDK)(浅析源码)_第2张图片

4.3 int compareTo(Float anotherFloat)

从数字上比较两个 Float 对象。
说明:
先看源码。
在这里插入图片描述
底层调用上1项。

4.4 double doubleValue()

返回这个 Float 对象的 double 值。

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 值。

4.9 int hashCode()

返回这个 Float 对象的哈希码。
说明:
先看源码。
在这里插入图片描述
在这里插入图片描述
可见,底层调用了第6项。

4.10 static float intBitsToFloat(int bits)

返回对应于给定的位表示形式的 float 值。
说明:
先看源码。
Java-API简析_java.lang.Float类(基于 Latest JDK)(浅析源码)_第3张图片
注释太长,暂不研究。
示例:

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。
说明:
先看源码。
在这里插入图片描述
底层调用下1项。

4.13 static boolean isInfinite(float v)

如果指定数字的大小是无穷大,则返回 true,否则返回 false。
说明:
先看源码。
在这里插入图片描述
暂不明白。

4.14 boolean isNaN()

如果这个 Float 值是一个非数字 (NaN) 值,则返回 true,否则返回 false。
说明:
先看源码。
在这里插入图片描述
底层调用下1项。

4.15 static boolean isNaN(float v)

如果指定的数字是一个非数字 (NaN) 值,则返回 true,否则返回 false。
说明:
先看源码。
在这里插入图片描述
暂不理解。

4.16 long longValue()

返回这个 Float 值对应的 long 值(它被强制转换为一个 long)。

4.17 static float parseFloat(String s)

返回一个新的 float 值,该值被初始化为用指定 String 表示的值,这与 Float 类的 valueOf() 方法产生的值类似。
说明:
关于valueOf(),见第23项。

4.18 short shortValue()

返回这个 Float 值对应的 short 值(它被强制转换为一个 short 值)。

4.19 static String toHexString(float f)

返回 float 参数的十六进制字符串表示形式。(暂未可知)

4.20 String toString()

返回这个 Float 对象的字符串表示形式。
说明:
先看源码。
在这里插入图片描述
底层调用下1项。

4.21 static String toString(float f)

返回 float 参数的字符串表示形式。

4.22 static float valueOf(float f)

返回表示指定的 float 值的 Float 实例。
说明:
看源码。
在这里插入图片描述

4.23 static float valueOf(String s)

返回保持用参数字符串 s 表示的 float 值的 Float 对象。
说明:
先看源码。
在这里插入图片描述
可见,此项与上1项的底层都是构造一个Float


本文暂缓更新中。。。

你可能感兴趣的:(Java-API,java,API解析)