Ответ 1
NaN
не равен самому себе, поэтому
double i = Double.NaN;
Но я не думаю, что это хороший вопрос для интервью.
Цитата из спецификации языка Java:
NaN неупорядочен, поэтому:
- Операторы численного сравнения
<
,<=
,>
и>=
возвращаютfalse
, если один или оба операндаNaN
(§15.20.1).- Оператор равенства
==
возвращаетfalse
, если либо операндNaN
. В частности,(x<y) == !(x>=y)
будетfalse
, еслиx
илиy
составляетNaN
.- Оператор неравенства
!=
возвращаетtrue
, если либо операндNaN
(§15.21.1). В частности,x!=x
естьtrue
тогда и только тогда, когдаx
NaN
.