Q:

Is it possible for a==a to evaluate false for some variable a in Java? 

I've been posed this slightly obscure but interesting question about the behavoir of Java.  Any ideas? 

A:

Yep, Try this...
public class Main
{
  public static void main(String[] args)
  {
    double a = Double. NaN;
    if( a == a ) System.out.println("equal");
  }
}

http://www.ideone.com/K0d2j

A:

Yes, for float or double NaNs (but not Float or Double).  Section 4.2.3 of the JLS 3rd Ed.  I believe IEEE 754 defines the operation that way.  Those are the only cases. 