Виртуалната машина на Java (JVM) е среда, която изпълнява Java програми. Java програмите се компилират в междинен език, наречен байткод, който изпълнява JVM. Всяка програма, компилирана в байткод, може да бъде изпълнена на всяка платформа, която има инсталиран JVM. Това прави софтуера на Java съвместим с много различни изчислителни платформи. JVM има няколко забележителни предимства и недостатъци, които всеки разработчик трябва да прецени внимателно, преди да инвестира в разработката на Java.
Независимост от платформата
Байткодът на Java може да бъде написан веднъж и след това да се изпълнява на множество платформи. Байткодът на Java не е необходимо да се пренася в конкретна хардуерна среда, тъй като работи във виртуалната машина на Java. Всяко приложение, компилирано в Java байткод, може да се изпълнява на всяка изчислителна платформа, която има виртуална машина Java.
Видео на деня
Сигурност
Java е написана с мисъл за сигурността. Виртуалната машина на Java има вградени функции за защита, които позволяват на програмистите да пишат силно защитени Java програми. Освен това не позволява на злонамерен софтуер да компрометира операционната система (ОС), тъй като не позволява на Java приложенията да взаимодействат с ресурсите на операционната система.
производителност
Java програмите, които се изпълняват на виртуална машина на Java, са склонни да работят по-бавно от еквивалентните програми, написани на C++. Системната неутралност на байт кода действа като недостатък по отношение на производителността. Това е така, защото оптимизацията на кода разчита до голяма степен на специфични за системата функции. Тъй като Java байткодът е системно неутрален, той не може да бъде оптимизиран за конкретен хардуерен набор.
Коректност
Програма, която изпълнява, както се очаква, се казва, че е правилна. Тъй като Java програма разчита на виртуалната машина на Java, за да я изпълни, JVM трябва да е без грешки, за да може програмата да работи правилно. Това разчитане на виртуалната машина Java въвежда възможна точка на отказ за програмата. За щастие софтуерът за виртуална машина Java се произвежда с много високи стандарти и следователно е малко вероятно да се доставя с грешки. Независимо от това, повреда във виртуалната машина на Java е възможност, която трябва да се обмисли.