Float 和Double实际上一个模子印出来的,为什么这么说,往下看
1.
![](https://img.haomeiwen.com/i12928458/2f476514f281182f.png)
正无穷大,负无穷大,NaN值(非数字值,常值),最大正有限值,最小正常值,最小正非零值类型,最大精度,最小精度,float值的位数,float值的字节数,float的原生类,为装箱类型,value属性,和序列化id,这边就不多详细介绍了。
2.
![](https://img.haomeiwen.com/i12928458/97fa0d4b8a8d86a6.png)
![](https://img.haomeiwen.com/i12928458/4c64ba288eac9bd1.png)
三个构造函数,第三个调用了FloattingDecimal的方法,我们就不深挖了。
3.
![](https://img.haomeiwen.com/i12928458/f73641df8368ec02.png)
![](https://img.haomeiwen.com/i12928458/8ab9a884fa91d705.png)
toString方法,底层也是走FloatDecimal下的toJavaFormatString方法。
4.
![](https://img.haomeiwen.com/i12928458/83a829dee223bd8b.png)
返回十六进制字符串float形式,底层调用的是Double的toHexString方法,在上一篇中我有介绍过。
5.
![](https://img.haomeiwen.com/i12928458/3a08e8e07b163a04.png)
获得Float的实例,第二个方法是优于构造函数使用。
6.
![](https://img.haomeiwen.com/i12928458/3e08a917692e46fc.png)
非空值,自己不等于自己
7.
![](https://img.haomeiwen.com/i12928458/bd58e76f167c885c.png)
判断是否是无穷数值,就是和POSITIIVE_INFINITY于NEGATIVE_INFINITY比价。
8.
![](https://img.haomeiwen.com/i12928458/41105cd30185cca3.png)
是否是有限数值。
9.
![](https://img.haomeiwen.com/i12928458/d46904ca0e957c08.png)
这两个方法调用的方法,都是之前调用的方法。
10.
![](https://img.haomeiwen.com/i12928458/b98c83441d8e80a6.png)
都是直接转化返回。
11.
![](https://img.haomeiwen.com/i12928458/74d4a2f5f470ef2a.png)
![](https://img.haomeiwen.com/i12928458/8f4cac94aedac463.png)
![](https://img.haomeiwen.com/i12928458/ccc8fa848dd8d57f.png)
获取float的hashCode值底层是将float的值转化为int。调用本地方法floatToRawIntBits.
12.
![](https://img.haomeiwen.com/i12928458/35d36b81ec548fae.png)
equals比较底层拿的还是value值的比较。
13.
![](https://img.haomeiwen.com/i12928458/b1ddef0c9e2a6521.png)
与double的类似,直接比大小,后面的方法考虑到NaN的比较。
14.
![](https://img.haomeiwen.com/i12928458/92070f006cd9ab9e.png)
加法直接加,max和min 都是调用的Math的方法。
网友评论