En una entrevista que le han hecho a Joshua Bloch en java.sun le han preguntado qué era para él la cosa más rara de la plataforma Java. Su respuesta ha sido un poco sorprendente: que el tipo byte tiene signo. Según él, esto es bastante anti intuitivo y puede causar muchos errores.
En uno de los comentarios del post en TSS se apunta otro hecho que, al menos a mí, me ha resultado más interesante: el tipo char es el único tipo sin signo de Java, lo cual puede dar lugar a resultados bastante poco intuitivos:
byte b = -1;System.out.println(b);System.out.println((int) b);System.out.println((int) (char) b);Produce la salida:
-1-165535