Valor char negativo JAVA

¿Por qué sucede lo siguiente?

char p = 0;
p--;
System.out.println(p);

resultado65535

¿Por qué no da un error de compilación o una excepción de tiempo de ejecución? Lo esperaba ya que los caracteres no pueden ser negativos. En su lugar, vuelve a contar desde el revés. Gracias por adelantado.