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