Чтобы расширить на ответ Джонаса , Спецификация виртуальной машины Java, Раздел 4.8 Ограничения на код виртуальной машины Java говорит, что:
Код виртуальной машины Java для
метод, метод инициализации экземпляра
(§3.9), или класс или интерфейс
метод инициализации (§3.9) сохраняется
в кодовом массиве кода
атрибут структуры method_info
файла класса. Эта секция
описывает связанные ограничения
с содержанием
Структура Code_attribute.
Продолжение раздела 4.8.1, Статические ограничения
Статические ограничения на файл класса
те, которые определяют правильность
файла. За исключением
статические ограничения на виртуальной Java
машинный код файла класса, эти
ограничения были даны в
предыдущий раздел. Статический
ограничения на виртуальной Java
машинный код в файле класса укажите
как инструкции виртуальной машины Java
должен быть выложен в массиве кода и
какие операнды индивида
инструкции должны быть.
Статические ограничения на
инструкции в массиве кода как
следующим образом:
...
- Значение элемента code_length должно быть меньше 65536.
...
Таким образом, метод имеет ограничение в 65535 байт для каждого метода. (см. примечание ниже)
Подробнее об ограничениях JVM см. Раздел 4.10 Ограничения виртуальной машины Java .
Примечание. Хотя, очевидно, существует проблема с конструкцией JVM, когда инструкция в байте 65535 - это команда длиной 1 байт, но она не защищена обработчиком исключений - это указано в сноске 4 раздела 4,10.