JVM (1) Лучшее вводное руководство в истории

Java JVM

Когда дело доходит до виртуальной машины Java (JVM), первое впечатление большинства людей может быть «трудным», но когда мы действительно шагнем в «мир JVM», мы обнаружим, что проблема не так сложна, как мы думаем. Единственное, что нас действительно пугает, — это сам страх. Будучи первой статьей во всей серии JVM, эта статья избавит вас от всех сомнений, когда вы впервые начали изучать JVM. Например: что такое JVM? Зачем изучать JVM? Как эффективно изучить JVM? Ответив на приведенные выше вопросы, давайте вместе отправимся в мир JVM.

1. Что такое JVM?

Введение в JVM:JVM — это аббревиатура от Java Virtual Machine, что в переводе с китайского означает Java Virtual Machine. Это спецификация вычислительного оборудования. Это вымышленный компьютер, реализованный путем имитации различных компьютерных функций на реальном компьютере. Проще говоря, JVM используется для анализа и запуска программ Java.

В Java есть очень важная функция «независимость от платформы», которая реализуется с помощью JVM. Языку Java нужно только генерировать объектный код (байт-код), работающий на JVM, и он может работать на различных платформах без изменений, поскольку сама JVM скрывает информацию, относящуюся к конкретной платформе, поэтому Java может «скомпилировать один раз и везде». . Беги".

2. Зачем изучать JVM?

Изучение JVM не что иное, как следующие причины:

1,Настройка программы

Разные программы (бизнес-сценарии) требуют разных конфигураций JVM, таких как настройка разных сборщиков мусора, настройка конфигурации памяти и доли нового поколения и старого поколения и т. д. Различные конфигурации по-разному влияют на работу программы. Конфигурация JVM по умолчанию может только гарантировать, что программа может «работать», и желание «работать хорошо» или даже «работать лучше» является одним из наиболее важных факторов в изучении JVM.

2,Устранение неполадок в работе программы

Некоторые программы могут столкнуться с различными проблемами при использовании в сети, и эти проблемы, как правило, фатальные, такие как переполнение памяти, медленная работа программы, вызванная взаимоблокировкой и т. д., и эти проблемы находятся в стадии разработки и небольшого количества параллельных тестов. дефект, который легко упустить из виду, поэтому, если вы хорошо изучите JVM, вы можете помочь вам очистить «упрямые болезни» в системе, когда это критично.

3.Овладейте основами и принципами выполнения программы

Так многие говорят: не только "знаю что", но и "знаю почему".

4.Избегайте некоторых ошибок при написании кода

Например, избегайте перегрузки вызовов с параметрами переменной длины (конкретный случай будет рассмотрен в следующей статье).

5.Справиться с интервью

Я должен сказать, что это также одна из целей обучения многих людей, и, конечно, это также положительная движущая сила, если вы понимаете «эффект сома».

6.Освойте общие механизмы других языков

Еще одна мощная особенность JVM заключается в том, что она может запускать не только Java-программы, но и Scala, Clojure, Groovy и популярный Kotlin.Изучая JVM, вы можете понять общие механизмы этих языков и даже позволить этим языкам разделить экосистему.

3. Как эффективно изучить JVM?

Вышеизложенное понимает преимущества изучения JVM, но как эффективно изучать JVM? Некоторые люди могут быть сбиты с толку, увидев слова «JVM» или «Виртуальная машина Java», и не знают, что это такое, не говоря уже о том, как его изучить. И этот раздел должен научить вас, как эффективно изучать JVM и разделить JVM на точки знаний. Можно сказать, что освоение пунктов знаний, перечисленных ниже, означает освоение всей JVM.

Точки знаний JVM делятся на следующие:

1,Компоненты JVM

Только разобравшись в компонентах JVM, вы сможете по-настоящему понять JVM.JVM состоит из 5 частей: куча, стек виртуальной машины, локальный стек методов, счетчик программ и область методов.В следующих статьях будут представлены 5 частей соответственно. цель.

2,Различные алгоритмы сборки мусора

В JVM существует много алгоритмов сборки мусора, и разные алгоритмы имеют разные преимущества и недостатки.Например, алгоритм пометки очистки и алгоритм копирования, алгоритм пометки очистки будет генерировать различные фрагменты пространства, алгоритм копирования делит память на две части, хотя производительность очень хорошая Но за один раз можно использовать только один блок, что занимает много места в памяти Существует ли относительно совершенный алгоритм? Ответ определенно да.Из-за недостатка места в следующих статьях будет подробно объяснено.

3.Различные сборщики мусора

В JVM много сборщиков мусора, например, самая ранняя версия последовательного сборщика Serial, сборщик с самой длинной историей разработки, это сборщик нового поколения, использующий алгоритм репликации, это однопоточный сборщик, он выполняет сбор мусора collection все остальные рабочие потоки должны быть приостановлены до конца коллекции сборщиков Serial ("Stop The World"). Существует также сборщик CMS (Concurrent Mark Sweep), целью которого является получение кратчайшего времени паузы при восстановлении, и более продвинутый сборщик G1 (Garbage-First).

Изучение этих коллекторов, с одной стороны, это настройка подходящего коллектора для вашей программы, а с другой стороны, параметры настройки каждого коллектора разные. параметр программы.

4.Инструмент анализа JVM

Инструмент анализа Jvm используется для проверки дефектов работы программы, выяснения проблем программы, чтобы обеспечить стабильную работу программы.Анализатор Jvm делится на: инструменты командной строки (официально называемые экспериментальными инструментами, но стабильность не позволяет Сомнительно), и инструменты анализа просмотра, первый, конечно, лучше второго, но последний основан на первом, и каждый инструмент будет подробно объяснен позже в этой серии.

5.Механизм загрузки классов Java

Механизм загрузки классов Java — это механизм загрузки и запуска классов Java в JVM. Это очень полезно для понимания того, как работает Java. Это также очень интересный момент в изучении Java. Вы можете увидеть всю работу Java. процесс полностью прозрачен, что дает людям «чувство контроля», которое, естественно, поддерживается языком Java, так что вы найдете язык Java очень интересным.

6.Обычно используемая конфигурация оптимизации JVM

Самое большое преимущество изучения JVM заключается в том, что использование этих распространенных конфигураций JVM может сделать вашу программу более эффективной, поэтому изучение этой области имеет важное значение.

4. Резюме

Эта статья дает каждому предварительное представление об общем впечатлении от JVM. Мы понимаем преимущества, которые может принести нам изучение JVM, и то, как изучать JVM. Эти проблемы оказываются самыми большими препятствиями при изучении JVM в начале. Начало всего трудное, а хорошее начало - половина успеха. Поздравляем, вы освоили незаменимый навык в области Java. Если вы считаете, что эта статья хороша, пожалуйста, перешлите ее в круг друзей или поделитесь ею с твои друзья.

Эта статья является первой статьей в серии Jvm, обратите внимание на официальный аккаунт автора, чтобы в будущем узнавать больше интересного контента: