Свойства языка Java. Виртуальная машина.
Все свойства языка Java в конфигурации CLDC должны, насколько это возможно, соответствовать спецификации языка Java, но в силу ограниченности системных ресурсов мобильных устройств, не поддерживаются следующие 'свойства доступные в платформах Java 2 ЕЕ и Java 2 SE:
- операции с дробными числами (floating point);
- финализация (finalization);
- отсутствует восстановление ошибок после сбоя (error handling).
Виртуальная машина
Виртуальная машина, используемая в конфигурации CLDC, несколько отличается от обычной виртуальной машины задействованной в Java, но обязана оставаться совместимой со спецификацией этой виртуальной машины (Java Virtual Machine Specification). Виртуальная машина находится непосредственно в телефоне и за совместимостью с общепринятой спецификацией обязаны следить производители мобильных телефонов.
Сама же виртуальная машина носит название Kilobyte Virtual Machine (KVM) из-за своей компактности и также имеет ряд недоступных свойств:
- не поддерживаются операции с дробными числами (floating point);
- нельзя создать класс загрузчик (class loader);
- отсутствует механизм отражения (reflection);
- не реализован Java Nativ интерфейс (Java Native Interface);
- не поддерживается финализация (finalization);
- отсутствует восстановление ошибок после сбоя (error handling);
- не поддерживается работа с групповыми потоками (Thread group).
Эти недоступные свойства языка Java и виртуальной Java машины, очевидным образом накладывают ощутимые ограничения на создаваемые программы, к сожалению, архитектура аппаратной части телефонов, еще пока не в силах выдержать столь высокую нагрузку и поэтому от перечисленных выше свойств пришлось отказаться.