Float.isNaN(float v)方法初探

本文探讨了Float.isNaN(float v)方法,通过实例分析了为何浮点数在某些情况下不等于自身,并揭示了equals()方法的特殊性。通过源码解析和debug,揭示了NaN对象的特性以及浮点数位布局的影响。
摘要由CSDN通过智能技术生成

Float.isNaN(float v)方法初探

背景

今天在翻看之前的博客Java容器类浅析二-----HashMap的存取原理,发现了HashMap的全参构造器中有这样一句代码if (loadFactor <= 0 || Float.isNaN(loadFactor)),当时对这个Float.isNaN(float v)方法产生了兴趣,于是翻看了一下这个方法的源码,方法体很简单就一句话:return (v != v);
哇,当时就懵逼了! 这是什么鬼? 自己不等于自己? 怎么可能! 自己和自己的内存地址居然不一致!
Debug以后发现:原来啊,还真是自己不等于自己!而且还发现了equals()方法的几个隐藏属性,收获满满。
温故而知新,古人诚不我欺!

问题

Float.isNaN(float v)方法

/**
   * Returns {@code true} if the specified number is a
   * Not-a-Number (NaN) value, {@code false} otherwise.
   *
   * @param   v   the value to be te
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值