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