Что означает предварительная проверка приложения J2ME?
Я прочитал следующее:
Приложения J2ME, в отличие от обычных приложений Java, проходят предварительную проверку.
Что именно означает предварительная проверка JAR-файла J2ME? Это что-то вроде контрольной суммы?
2 ответа
Предварительная проверка ответа - это новый этап в цикле разработки и развертывания приложений Java, предназначенных для работы на J2ME CLDC. Предварительная проверка выполняет определенные проверки байт-кодов Java перед выполнением. Если этот первый этап проверки в порядке, то предварительный верификатор аннотирует файлы классов (используя стандартные "атрибуты" байт-кода Java, так что они все еще являются простыми старыми байт-кодами Java и будут исполняемыми на виртуальных машинах, не осведомленных о преимуществах предварительной проверки), а затем сохраняет аннотирует файлы классов или передает их следующему инструменту в цепочке компиляции.
Когда KVM пытается запустить приложение J2ME на основе CLDC, он проверяет файлы классов Java на наличие этих аннотаций предварительной проверки. Надлежащие аннотации в файлах классов гарантируют, что были выполнены определенные проверки во время компиляции, и поэтому KVM может быстрее проходить собственные проверки и проверки безопасности и быстрее запускать приложение.
SDK эталонной реализации Sun CLDC включает в себя инструмент предварительной проверки. Вы используете инструмент после компиляции кода с помощью javac (или вашего любимого компилятора Java). Более подробная информация о предварительной проверке включена в спецификацию CLDC и в документы для разработчиков, включенные в CLDC SDK.
Предварительная проверка выполняет определенные проверки байт-кодов Java перед выполнением. Если этот первый этап проверки в порядке, то предварительный верификатор аннотирует файлы классов (используя стандартные "атрибуты" байт-кода Java, так что они все еще являются простыми старыми байт-кодами Java и будут исполняемыми на виртуальных машинах, не осведомленных о преимуществах предварительной проверки), а затем сохраняет аннотирует файлы классов или передает их следующему инструменту в цепочке компиляции.