Eu tenho as seguintes duas variáveis de objeto
Date a;
Date b=null;
Definitivamente, 'a' e 'b' não estão se referindo a nenhum objeto.
Agora, se eu chamar a seguinte declaração
System.out.println(a.toString());
Haverá um erro de tempo de compilação, enquanto que se eu chamar a seguinte instrução
System.out.println(b.toString());
Não haverá erro de tempo de compilação, mas haverá um erro de tempo de execução. Qual é o motivo disso e qual valor será realmente armazenado em 'b' para representar um valor nulo?