HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Определение</a></li>
1 <ul><li><a>Определение</a></li>
2 <li><a>Области применения</a></li>
2 <li><a>Области применения</a></li>
3 <li><a>Сборка мусора</a></li>
3 <li><a>Сборка мусора</a></li>
4 <li><a>Ключевые составляющие JVM</a><ul><li><a>Спецификация</a></li>
4 <li><a>Ключевые составляющие JVM</a><ul><li><a>Спецификация</a></li>
5 <li><a>Реализация</a></li>
5 <li><a>Реализация</a></li>
6 <li><a>Экземпляр</a></li>
6 <li><a>Экземпляр</a></li>
7 </ul></li>
7 </ul></li>
8 <li><a>Работа с class-файлами</a><ul><li><a>Загрузчик классов</a></li>
8 <li><a>Работа с class-файлами</a><ul><li><a>Загрузчик классов</a></li>
9 <li><a>Механизм выполнения</a></li>
9 <li><a>Механизм выполнения</a></li>
10 </ul></li>
10 </ul></li>
11 <li><a>Управление ресурсами системы</a></li>
11 <li><a>Управление ресурсами системы</a></li>
12 <li><a>Перспективы JVM</a><ul><li><a>Конкуренты JVM</a></li>
12 <li><a>Перспективы JVM</a><ul><li><a>Конкуренты JVM</a></li>
13 <li><a>Ветви развития JVM</a></li>
13 <li><a>Ветви развития JVM</a></li>
14 </ul></li>
14 </ul></li>
15 </ul><p>Java Virtual Machine (или JVM) - это виртуальная машина, которая является основной частью исполняющей Java-системы (Java Runtime Environment или JRE). Этот элемент очень полезен, особенно для современной разработки. Связано это с тем, что до появления JVM программисты сталкивались с одной серьезной проблемой - им приходилось думать, на какой операционной системе (ОС) и архитектуре процессора будет запускаться исходное приложение. Его код был наполнен директивами условной компиляции. Также разработчики иногда избегали такого приема путем написания отдельных версий программного обеспечения для каждой операционной системы отдельно.</p>
15 </ul><p>Java Virtual Machine (или JVM) - это виртуальная машина, которая является основной частью исполняющей Java-системы (Java Runtime Environment или JRE). Этот элемент очень полезен, особенно для современной разработки. Связано это с тем, что до появления JVM программисты сталкивались с одной серьезной проблемой - им приходилось думать, на какой операционной системе (ОС) и архитектуре процессора будет запускаться исходное приложение. Его код был наполнен директивами условной компиляции. Также разработчики иногда избегали такого приема путем написания отдельных версий программного обеспечения для каждой операционной системы отдельно.</p>
16 <p>Некоторые проблемы возникали у программ с GUI - коды графических элементов для различных операционных систем были абсолютно разными. Это связано с тем, что почти все приложения до появления виртуальной машины Java были написаны на C++ или C. Эти языки сильно близки к "железу" компьютера, поэтому в процессе разработки приходилось учитывать процессорную архитектуру и тип операционной системы. С кроссплатформенными программами возникали проблемы - их попросту не было.</p>
16 <p>Некоторые проблемы возникали у программ с GUI - коды графических элементов для различных операционных систем были абсолютно разными. Это связано с тем, что почти все приложения до появления виртуальной машины Java были написаны на C++ или C. Эти языки сильно близки к "железу" компьютера, поэтому в процессе разработки приходилось учитывать процессорную архитектуру и тип операционной системы. С кроссплатформенными программами возникали проблемы - их попросту не было.</p>
17 <p>Java JVM серьезно исправила ситуацию, облегчив работу программистам. Далее предстоит познакомиться с этим компонентом более детально. Требуется не просто разобраться, что собой представляет виртуальная машина, но и выяснить, для каких целей она используется. Также необходимо рассмотреть эволюцию JVM, ее основные составляющие и будущие перспективы. Соответствующая информация пригодится как начинающим разработчикам, так и более опытным программистам.</p>
17 <p>Java JVM серьезно исправила ситуацию, облегчив работу программистам. Далее предстоит познакомиться с этим компонентом более детально. Требуется не просто разобраться, что собой представляет виртуальная машина, но и выяснить, для каких целей она используется. Также необходимо рассмотреть эволюцию JVM, ее основные составляющие и будущие перспективы. Соответствующая информация пригодится как начинающим разработчикам, так и более опытным программистам.</p>
18 <h2>Определение</h2>
18 <h2>Определение</h2>
19 <p>Java JVM - это программа, которая разработана для выполнения и запуска других приложений на Java. Она также может быть использована для работы с программным обеспечением, написанным на других языках.</p>
19 <p>Java JVM - это программа, которая разработана для выполнения и запуска других приложений на Java. Она также может быть использована для работы с программным обеспечением, написанным на других языках.</p>
20 <p>В основе JVM заложена простая идея, которая будет всегда одним из наглядных примеров кодирования в стиле "Кунг-Фу". Виртуальная машина будет исполнять байт-код Java, который был предварительно создан из исходного текста Java-программы компилятором (javac).</p>
20 <p>В основе JVM заложена простая идея, которая будет всегда одним из наглядных примеров кодирования в стиле "Кунг-Фу". Виртуальная машина будет исполнять байт-код Java, который был предварительно создан из исходного текста Java-программы компилятором (javac).</p>
21 <p>Это - ключевой элемент Java-платформы. Виртуальная машина может быть рассмотрена в качестве связующего программного обеспечения и самостоятельной платформы. Использование одного и того же байт-кода для различных операционных систем позволяет описать Java как “Скомпилировать единожды - запускать везде”.</p>
21 <p>Это - ключевой элемент Java-платформы. Виртуальная машина может быть рассмотрена в качестве связующего программного обеспечения и самостоятельной платформы. Использование одного и того же байт-кода для различных операционных систем позволяет описать Java как “Скомпилировать единожды - запускать везде”.</p>
22 <h2>Области применения</h2>
22 <h2>Области применения</h2>
23 <p>Что такое виртуальная машина Java, понятно. Теперь необходимо рассмотреть области применения соответствующего элемента.</p>
23 <p>Что такое виртуальная машина Java, понятно. Теперь необходимо рассмотреть области применения соответствующего элемента.</p>
24 <p>JVM обладает несколькими ключевыми функциями:</p>
24 <p>JVM обладает несколькими ключевыми функциями:</p>
25 <ol><li>Дает возможность запускать программы, написанные при помощи Java, на любых устройствах и операционных системах.</li>
25 <ol><li>Дает возможность запускать программы, написанные при помощи Java, на любых устройствах и операционных системах.</li>
26 <li>Оптимизирование и управление памятью, которая используется для работы того или иного программного обеспечения.</li>
26 <li>Оптимизирование и управление памятью, которая используется для работы того или иного программного обеспечения.</li>
27 </ol><p>До 1995 года (тогда и появилась JVM) все приложения писались для конкретной операционной системы. Памятью управлял разработчик того или иного программного обеспечения. JVM стала революционным открытием на рынке.</p>
27 </ol><p>До 1995 года (тогда и появилась JVM) все приложения писались для конкретной операционной системы. Памятью управлял разработчик того или иного программного обеспечения. JVM стала революционным открытием на рынке.</p>
28 <p>Для рассматриваемого компонента существуют несколько определений - обычное и техническое:</p>
28 <p>Для рассматриваемого компонента существуют несколько определений - обычное и техническое:</p>
29 <ol><li>Обычное определение: это способ запуска Java-приложений. Необходимо настроить параметры виртуальной машины, а затем обеспечить автоматическое управление ресурсами во время выполнения программного обеспечения.</li>
29 <ol><li>Обычное определение: это способ запуска Java-приложений. Необходимо настроить параметры виртуальной машины, а затем обеспечить автоматическое управление ресурсами во время выполнения программного обеспечения.</li>
30 <li>Техническое определение: это программа, которая выполняет тот или иной код, а также предоставляет среду его выполнения.</li>
30 <li>Техническое определение: это программа, которая выполняет тот или иной код, а также предоставляет среду его выполнения.</li>
31 </ol><p>Разработчики обычно подразумевают под JVM процесс, который выполняется на устройстве, особенно на серверах - он занимается управлением и контролем использования ресурсов Java-программами.</p>
31 </ol><p>Разработчики обычно подразумевают под JVM процесс, который выполняется на устройстве, особенно на серверах - он занимается управлением и контролем использования ресурсов Java-программами.</p>
32 <p>JVM активно разрабатывается и используется очень сильными программистами в качестве корпоративного программного обеспечения и программы с открытым исходным кодом. OpenJDK - это проект, который является потомком решений компании Sun Microsystems для open-source версии Java. Сейчас его развитием занимается Oracle и некоторые другие IT-организации.</p>
32 <p>JVM активно разрабатывается и используется очень сильными программистами в качестве корпоративного программного обеспечения и программы с открытым исходным кодом. OpenJDK - это проект, который является потомком решений компании Sun Microsystems для open-source версии Java. Сейчас его развитием занимается Oracle и некоторые другие IT-организации.</p>
33 <h2>Сборка мусора</h2>
33 <h2>Сборка мусора</h2>
34 <p>Java JVM управляет памятью при помощи процесса, называемого сборкой мусора. Он встречается в некоторых языках программирования. Сборщик мусора непрерывно определяет и удаляет неиспользуемую память в приложении. Соответствующий процесс осуществляется внутри работающей виртуальной машины.</p>
34 <p>Java JVM управляет памятью при помощи процесса, называемого сборкой мусора. Он встречается в некоторых языках программирования. Сборщик мусора непрерывно определяет и удаляет неиспользуемую память в приложении. Соответствующий процесс осуществляется внутри работающей виртуальной машины.</p>
35 <p>В самом начале существования Java подвергалась огромной критике - язык был не слишком быстрым. Особенно спорным вопросом стал сборщик мусора. С тех пор развитие Java позволило сделать язык программирования более быстрым и функциональным. Это положительно сказалось на улучшении и оптимизации сборки мусора.</p>
35 <p>В самом начале существования Java подвергалась огромной критике - язык был не слишком быстрым. Особенно спорным вопросом стал сборщик мусора. С тех пор развитие Java позволило сделать язык программирования более быстрым и функциональным. Это положительно сказалось на улучшении и оптимизации сборки мусора.</p>
36 <h2>Ключевые составляющие JVM</h2>
36 <h2>Ключевые составляющие JVM</h2>
37 <p>Виртуальная машина Java состоит из нескольких ключевых составляющих:</p>
37 <p>Виртуальная машина Java состоит из нескольких ключевых составляющих:</p>
38 <ul><li>спецификация;</li>
38 <ul><li>спецификация;</li>
39 <li>реализация;</li>
39 <li>реализация;</li>
40 <li>экземпляр.</li>
40 <li>экземпляр.</li>
41 </ul><p>Далее эти компоненты будут рассмотрены более подробно. Соответствующая информация пригодится тем, кто хочет разобраться в принципах и особенностях работы виртуальной машины.</p>
41 </ul><p>Далее эти компоненты будут рассмотрены более подробно. Соответствующая информация пригодится тем, кто хочет разобраться в принципах и особенностях работы виртуальной машины.</p>
42 <h3>Спецификация</h3>
42 <h3>Спецификация</h3>
43 <p>Это первая часть JVM. В ней отсутствует четкое определение реализации виртуальной машины. За счет соответствующего приема удается добиваться максимальной свободы творчества в процессе ее формирования.</p>
43 <p>Это первая часть JVM. В ней отсутствует четкое определение реализации виртуальной машины. За счет соответствующего приема удается добиваться максимальной свободы творчества в процессе ее формирования.</p>
44 <p>Для грамотной реализации виртуальной машины необходимо уметь читать class-файлы, а также грамотно выполнять прописанные в них операции.</p>
44 <p>Для грамотной реализации виртуальной машины необходимо уметь читать class-файлы, а также грамотно выполнять прописанные в них операции.</p>
45 <p>От Java JVM требуется лишь одно - это грамотный и правильный запуск Java-приложений. Изначально соответствующие задачи могут показаться элементарными, но они на самом деле являются крупными (масштабными), особенно если принимать во внимание мощность и гибкость Джавы.</p>
45 <p>От Java JVM требуется лишь одно - это грамотный и правильный запуск Java-приложений. Изначально соответствующие задачи могут показаться элементарными, но они на самом деле являются крупными (масштабными), особенно если принимать во внимание мощность и гибкость Джавы.</p>
46 <h3>Реализация</h3>
46 <h3>Реализация</h3>
47 <p>Реализация спецификации приводит к созданию настоящей программы, которая является реализацией виртуальной машины. Существует очень много разнообразных реализаций спецификации: как коммерческих, так и бесплатных (с открытым исходным кодом).</p>
47 <p>Реализация спецификации приводит к созданию настоящей программы, которая является реализацией виртуальной машины. Существует очень много разнообразных реализаций спецификации: как коммерческих, так и бесплатных (с открытым исходным кодом).</p>
48 <p>В качестве примера можно привести HotSpot .JVM от OpenJDK. Это - эталонная реализация. Она включает в себя одну из самых проверенных и стабильных в мире кодовых баз. HotSpot - это еще и широко используемая виртуальная машина.</p>
48 <p>В качестве примера можно привести HotSpot .JVM от OpenJDK. Это - эталонная реализация. Она включает в себя одну из самых проверенных и стабильных в мире кодовых баз. HotSpot - это еще и широко используемая виртуальная машина.</p>
49 <p>Почти все JVM созданы в виде ответвлений от OpenJDK и HotSpot, включая лицензионный JDK от компании Oracle. Разработчики, занятые созданием лицензированных продуктов на базе OpenJDK, обычно стремятся увеличивать производительность своих проектов для определенных операционных систем. Пользователи загружают и устанавливают виртуальные машины Java в качестве части среды выполнения упомянутого языка программирования.</p>
49 <p>Почти все JVM созданы в виде ответвлений от OpenJDK и HotSpot, включая лицензионный JDK от компании Oracle. Разработчики, занятые созданием лицензированных продуктов на базе OpenJDK, обычно стремятся увеличивать производительность своих проектов для определенных операционных систем. Пользователи загружают и устанавливают виртуальные машины Java в качестве части среды выполнения упомянутого языка программирования.</p>
50 <h3>Экземпляр</h3>
50 <h3>Экземпляр</h3>
51 <p>После реализации спецификации JVM и ее выпуска в виде отдельной (самостоятельной) программы, можно загрузить соответствующее обеспечение в качестве приложения. Это и есть экземпляр виртуальной машины.</p>
51 <p>После реализации спецификации JVM и ее выпуска в виде отдельной (самостоятельной) программы, можно загрузить соответствующее обеспечение в качестве приложения. Это и есть экземпляр виртуальной машины.</p>
52 <p>Когда разработчики говорят о JVM, обычно подразумевается ее экземпляр, работающий в среде разработки.</p>
52 <p>Когда разработчики говорят о JVM, обычно подразумевается ее экземпляр, работающий в среде разработки.</p>
53 <p>Спецификацией программного обеспечения является понятный человеку проектный документ. Он описывает принципы работы той или иной программной системы. Целью спецификации является создание четкого описания и требований к кодам для программистов.</p>
53 <p>Спецификацией программного обеспечения является понятный человеку проектный документ. Он описывает принципы работы той или иной программной системы. Целью спецификации является создание четкого описания и требований к кодам для программистов.</p>
54 <h2>Работа с class-файлами</h2>
54 <h2>Работа с class-файлами</h2>
55 <p>Работа виртуальной машины напрямую зависит от загрузчика классов и механизмов выполнения. Далее эти два компонента будут рассмотрены более подробно. Они позволяют работать с class-файлами.</p>
55 <p>Работа виртуальной машины напрямую зависит от загрузчика классов и механизмов выполнения. Далее эти два компонента будут рассмотрены более подробно. Они позволяют работать с class-файлами.</p>
56 <h3>Загрузчик классов</h3>
56 <h3>Загрузчик классов</h3>
57 <p>В Java все является классом. Сюда входят как классы языка, так и все созданное с помощью него приложение. Любая программа Java может включать в него один или множество классов.</p>
57 <p>В Java все является классом. Сюда входят как классы языка, так и все созданное с помощью него приложение. Любая программа Java может включать в него один или множество классов.</p>
58 <p>Для запуска такого программного обеспечения JVM должна осуществить загрузку скомпилированных class-файлов в контекст. Примером может послужить сервер, на котором соответствующие элементы будут доступны. Java Virtual Machine зависит от своего загрузчика класса для корректного выполнения этой функции.</p>
58 <p>Для запуска такого программного обеспечения JVM должна осуществить загрузку скомпилированных class-файлов в контекст. Примером может послужить сервер, на котором соответствующие элементы будут доступны. Java Virtual Machine зависит от своего загрузчика класса для корректного выполнения этой функции.</p>
59 <p>Загрузчик классов Java - часть его Virtual Machine. Он:</p>
59 <p>Загрузчик классов Java - часть его Virtual Machine. Он:</p>
60 <ul><li>загружает имеющиеся классы в память;</li>
60 <ul><li>загружает имеющиеся классы в память;</li>
61 <li>делает классы Java доступными для выполнения (реализации).</li>
61 <li>делает классы Java доступными для выполнения (реализации).</li>
62 </ul><p>Загрузчик классов использует технику lazy-loading (ленивая загрузка) и кэширование для того, чтобы загрузка классов оказалась максимально эффективной. Использование соответствующих методов - это достаточно простой процесс.</p>
62 </ul><p>Загрузчик классов использует технику lazy-loading (ленивая загрузка) и кэширование для того, чтобы загрузка классов оказалась максимально эффективной. Использование соответствующих методов - это достаточно простой процесс.</p>
63 <p>Каждая виртуальная машина упомянутого языка разработки включает в свой состав загрузчики классов. Спецификация Java Virtual Machine описывает стандартные методы для запроса и управления соответствующим элементом в процессе работы. Также за реализацию упомянутых возможностей отвечает конкретная реализация JVM. Для разработчика механизмы, лежащие в основе загрузчика классов, обычно представлены в виде "черного ящика".</p>
63 <p>Каждая виртуальная машина упомянутого языка разработки включает в свой состав загрузчики классов. Спецификация Java Virtual Machine описывает стандартные методы для запроса и управления соответствующим элементом в процессе работы. Также за реализацию упомянутых возможностей отвечает конкретная реализация JVM. Для разработчика механизмы, лежащие в основе загрузчика классов, обычно представлены в виде "черного ящика".</p>
64 <h3>Механизм выполнения</h3>
64 <h3>Механизм выполнения</h3>
65 <p>Когда загрузчик классов завершает свою работу, Java JVM начинает выполнять код каждого имеющегося класса. Механизм выполнения - это компонент виртуальной машины, который отвечает за обработку функций. Он нужен для корректной работы любой Java Virtual Machine.</p>
65 <p>Когда загрузчик классов завершает свою работу, Java JVM начинает выполнять код каждого имеющегося класса. Механизм выполнения - это компонент виртуальной машины, который отвечает за обработку функций. Он нужен для корректной работы любой Java Virtual Machine.</p>
66 <p>Выполнение кода включает в себя управление доступом к системным ресурсам. Механизм выполнения виртуальной машины располагается между операционной системой и работой приложения с ее запросами на:</p>
66 <p>Выполнение кода включает в себя управление доступом к системным ресурсам. Механизм выполнения виртуальной машины располагается между операционной системой и работой приложения с ее запросами на:</p>
67 <ul><li>файловые ресурсы;</li>
67 <ul><li>файловые ресурсы;</li>
68 <li>ресурсы памяти;</li>
68 <li>ресурсы памяти;</li>
69 <li>сетевые ресурсы.</li>
69 <li>сетевые ресурсы.</li>
70 </ul><p>Под операционной системой принято подразумевать систему, которая предоставляет соответствующие ресурсы устройства.</p>
70 </ul><p>Под операционной системой принято подразумевать систему, которая предоставляет соответствующие ресурсы устройства.</p>
71 <h2>Управление ресурсами системы</h2>
71 <h2>Управление ресурсами системы</h2>
72 <p>Системные ресурсы могут быть условно разделены на несколько крупных категорий:</p>
72 <p>Системные ресурсы могут быть условно разделены на несколько крупных категорий:</p>
73 <ul><li>память;</li>
73 <ul><li>память;</li>
74 <li>все остальные имеющиеся ресурсы.</li>
74 <li>все остальные имеющиеся ресурсы.</li>
75 </ul><p>JVM отвечает за очистку памяти, которая не используется, а сборщик мусора - это некоторый механизм, который осуществляет соответствующую операцию. Виртуальная машина также отвечает за распределение и поддержку ссылочных структур. В качестве примера можно упомянуть, что механизм выполнения Java JVM отвечает за то, что при использовании ключевого слова new осуществляется запрос к операционной системе на выделение памяти.</p>
75 </ul><p>JVM отвечает за очистку памяти, которая не используется, а сборщик мусора - это некоторый механизм, который осуществляет соответствующую операцию. Виртуальная машина также отвечает за распределение и поддержку ссылочных структур. В качестве примера можно упомянуть, что механизм выполнения Java JVM отвечает за то, что при использовании ключевого слова new осуществляется запрос к операционной системе на выделение памяти.</p>
76 <p>Кроме памяти, механизм выполнения отвечает за управление ресурсами сети и файловой системы. Это достаточно сложная задача из-за того, что Virtual Machine работает с самыми разными ОС. Кроме потребностей каждого приложения в ресурсах, механизм выполнения должен корректно функционировать с каждой операционной системой.</p>
76 <p>Кроме памяти, механизм выполнения отвечает за управление ресурсами сети и файловой системы. Это достаточно сложная задача из-за того, что Virtual Machine работает с самыми разными ОС. Кроме потребностей каждого приложения в ресурсах, механизм выполнения должен корректно функционировать с каждой операционной системой.</p>
77 <h2>Перспективы JVM</h2>
77 <h2>Перспективы JVM</h2>
78 <p>Java JVM стала революцией в концепциях разработки 1995 года. Этот элемент сформировал новый стандарт, который используется до сих пор - "Написать один раз, использовать везде". Также соответствующая разработка позволила автоматически управлять памятью. В 1995 году совместимость программного обеспечения была новой и смелой концепцией. Сейчас же это - норма. То же самое касается автоматического сборщика мусора.</p>
78 <p>Java JVM стала революцией в концепциях разработки 1995 года. Этот элемент сформировал новый стандарт, который используется до сих пор - "Написать один раз, использовать везде". Также соответствующая разработка позволила автоматически управлять памятью. В 1995 году совместимость программного обеспечения была новой и смелой концепцией. Сейчас же это - норма. То же самое касается автоматического сборщика мусора.</p>
79 <p>JVM стала неотъемлемой частью современной разработки. Программисты со временем усовершенствовали ее и развили идеи на последующие десятилетия. Изначально виртуальная машина работала только на Джаве, но сейчас она поддерживается огромным количеством разнообразных языков, включая Kotlin, Scala, Groovy.</p>
79 <p>JVM стала неотъемлемой частью современной разработки. Программисты со временем усовершенствовали ее и развили идеи на последующие десятилетия. Изначально виртуальная машина работала только на Джаве, но сейчас она поддерживается огромным количеством разнообразных языков, включая Kotlin, Scala, Groovy.</p>
80 <p>С прогнозированием будущего виртуальной машины ситуация обстоит неоднозначно. Сейчас это незаменимая часть разработки различного программного обеспечения. И в ближайшее время полноценной замены рассмотренному элементу не предвидится.</p>
80 <p>С прогнозированием будущего виртуальной машины ситуация обстоит неоднозначно. Сейчас это незаменимая часть разработки различного программного обеспечения. И в ближайшее время полноценной замены рассмотренному элементу не предвидится.</p>
81 <h3>Конкуренты JVM</h3>
81 <h3>Конкуренты JVM</h3>
82 <p>Наиболее известный конкурент Java Virtual Machine - это платформа .NET и ее виртуальная машина для реализации языка C#.</p>
82 <p>Наиболее известный конкурент Java Virtual Machine - это платформа .NET и ее виртуальная машина для реализации языка C#.</p>
83 <p>В начале 2000-х годов компания Microsoft создала собственную виртуальную машину Джава - Microsoft J++. Из-за несоблюдения спецификации Sun подала на Майкрософт судебный иск. Известный производитель Windows OS проиграла все слушания и лишилась права делать виртуальные машины для Джавы. Некоторые эксперты полагают, что именно это привело к созданию C#.</p>
83 <p>В начале 2000-х годов компания Microsoft создала собственную виртуальную машину Джава - Microsoft J++. Из-за несоблюдения спецификации Sun подала на Майкрософт судебный иск. Известный производитель Windows OS проиграла все слушания и лишилась права делать виртуальные машины для Джавы. Некоторые эксперты полагают, что именно это привело к созданию C#.</p>
84 <p>Java и C# - инструменты разработки, решающие одни и те же задачи. У них также одинаковые преимущества:</p>
84 <p>Java и C# - инструменты разработки, решающие одни и те же задачи. У них также одинаковые преимущества:</p>
85 <ul><li>строгая типизация;</li>
85 <ul><li>строгая типизация;</li>
86 <li>наличие сборщика мусора;</li>
86 <li>наличие сборщика мусора;</li>
87 <li>высокий уровень безопасности.</li>
87 <li>высокий уровень безопасности.</li>
88 </ul><p>Между соответствующими платформами была принципиальная разница. Она заключается в кроссплатформенности. Java - это кроссплатформенный инструмент, а .NET и C# - нет, они работали только на Windows. С момента появления .NET Core, C# тоже стал мультиплатформенным.</p>
88 </ul><p>Между соответствующими платформами была принципиальная разница. Она заключается в кроссплатформенности. Java - это кроссплатформенный инструмент, а .NET и C# - нет, они работали только на Windows. С момента появления .NET Core, C# тоже стал мультиплатформенным.</p>
89 <h3>Ветви развития JVM</h3>
89 <h3>Ветви развития JVM</h3>
90 <p>Java может получить несколько новых проектов, которые на данный момент активно развиваются. Речь идет о:</p>
90 <p>Java может получить несколько новых проектов, которые на данный момент активно развиваются. Речь идет о:</p>
91 <ol><li>Loom. Это проект по добавлению виртуальных тредов в Джаву. С ним соответствующие компоненты существуют "сами по себе". Loom имеет особое значение для микросервисов и серверов с огромным количеством одновременных подключений.</li>
91 <ol><li>Loom. Это проект по добавлению виртуальных тредов в Джаву. С ним соответствующие компоненты существуют "сами по себе". Loom имеет особое значение для микросервисов и серверов с огромным количеством одновременных подключений.</li>
92 <li>Panama. Еще один проект, посвященный JVM. Он отвечает за взаимодействие Java с нативными кодами, написанными на C и C++. Здесь предложен совершенно новый интерфейс и его оптимизация реализации на стороне JVM. С помощью этих особенностей будет удобно, приятно и безопасно работать с нативным кодом.</li>
92 <li>Panama. Еще один проект, посвященный JVM. Он отвечает за взаимодействие Java с нативными кодами, написанными на C и C++. Здесь предложен совершенно новый интерфейс и его оптимизация реализации на стороне JVM. С помощью этих особенностей будет удобно, приятно и безопасно работать с нативным кодом.</li>
93 <li>Valhalla. Еще один проект, посвященный Java и введению в него новых объектов - value-типов или inline-типов. Они также называются primitive-value-типами. Проект настолько сложный, что даже его ключевая концепция часто переименовывается. Смысл Valhalla заключается в том, чтобы выделить подкласс объектов, у которых нет identity. Данный проект должен предоставлять пользователям самостоятельно описывать классы, у которых отсутствует identity, а также подготавливать к этому уже существующую типовую систему.</li>
93 <li>Valhalla. Еще один проект, посвященный Java и введению в него новых объектов - value-типов или inline-типов. Они также называются primitive-value-типами. Проект настолько сложный, что даже его ключевая концепция часто переименовывается. Смысл Valhalla заключается в том, чтобы выделить подкласс объектов, у которых нет identity. Данный проект должен предоставлять пользователям самостоятельно описывать классы, у которых отсутствует identity, а также подготавливать к этому уже существующую типовую систему.</li>
94 </ol><p>Теперь понятно, что собой представляет Java JVM. Лучше изучить соответствующий язык и его виртуальную машину помогут дистанционные компьютерные курсы.</p>
94 </ol><p>Теперь понятно, что собой представляет Java JVM. Лучше изучить соответствующий язык и его виртуальную машину помогут дистанционные компьютерные курсы.</p>
95 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
95 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
96  
96