Andremoniy ya respondió la java 7
parte de esta pregunta, pero parece que en ese momento era pronto para decidir, java 8
así que completo la respuesta para cubrir esa parte:
Citando de jvms :
El hecho de que end_pc sea exclusivo es un error histórico en el diseño de la máquina virtual Java: si el código de la máquina virtual Java para un método tiene exactamente 65535 bytes de longitud y termina con una instrucción de 1 byte de longitud, entonces esa instrucción no puede protegerse. por un manejador de excepciones. Un escritor de compiladores puede solucionar este error limitando el tamaño máximo del código generado de la Máquina Virtual Java para cualquier método, método de inicialización de instancia o inicializador estático (el tamaño de cualquier matriz de código) a 65534 bytes.
Como ve, parece que este problema histórico no parece solucionarse al menos en esta versión (Java 8).