Последняя версия «Углубленного понимания виртуальной машины Java», написанная Али П8, легко изучает нижний уровень JVM.

предисловие

Java в настоящее время является технологией разработки программного обеспечения с наибольшим количеством пользователей и самым широким спектром приложений.Техническая система Java в основном состоит из виртуальной машины, которая поддерживает выполнение программ Java, библиотеки классов Java, которая обеспечивает поддержку интерфейса для различных областей разработки. , язык программирования Java и многие сторонние приложения Электронная среда Java (например, Spring, MyBatis и т. д.). В Китае существует множество технических материалов и книг об API библиотеки классов Java, грамматике языка Java и сторонних фреймворках, в то время как данные о виртуальной машине Java крайне скудны.

С непрерывным развитием технологии Java она применяется во все большем количестве областей. Некоторые из этих областей, такие как Интернет, энергетика, финансы, связь и т. д., предъявляют чрезвычайно высокие требования к производительности, стабильности и масштабируемости программ. Программа может прекрасно работать, если ее используют 10 человек одновременно, но она будет работать медленнее, зависать или даже давать сбой, если ее используют 10 000 человек одновременно. Нет никаких сомнений в том, что для одновременного использования 10 000 человек требуется более производительное физическое оборудование, но в большинстве случаев повышение производительности оборудования не может пропорционально увеличить производительность и параллелизм программы и может даже не повлиять на статус выполнения программы. программа.никаких улучшений. Для виртуальной машины Java есть причина: чтобы достичь цели «предоставить согласованную виртуальную платформу для всего оборудования», некоторые характеристики производительности, связанные с оборудованием, приносятся в жертву. Что еще более важно, это человеческая причина: если разработчики не понимают принципов работы многих технических особенностей виртуальной машины, они не могут написать код, наиболее подходящий для работы и самооптимизации виртуальной машины.

Давайте вместе погрузимся в мир виртуальных машин!

1. Знакомство с Java

В мире нет идеальной программы, но мы не впадаем в депрессию, потому что написание программы — это процесс постоянного стремления к совершенству.

1.1 Обзор

1.2 Технологическая система Java

1.3 История развития Java

1.4 Семейство виртуальных машин Java

1.5 Взгляд в будущее технологии Java

1.6 Бой: Скомпилируйте JDK самостоятельно

1.7 Краткое содержание главы

2. Автоматическое управление памятью

Между Java и C++ есть высокая стена, окруженная технологиями динамического выделения памяти и сборки мусора.Люди за стеной хотят попасть внутрь, а те, кто внутри стены, хотят выйти.

Глава 2 Область памяти Java и исключение переполнения памяти

2.1 Обзор

2.2 Область рабочих данных

2.3 Исследование объектов виртуальной машины HotSpot

2. 4 Actual Combat: 0utOfMemoryErr или исключение

2.5 Краткое изложение этой главы

Глава 3 Сборщик мусора и стратегии распределения памяти

3.1 Обзор

3.2 Субъект мертв?

3.3 Алгоритм сборки мусора

3.4 Детали реализации алгоритма HotSpot

3.5 Классический сборщик мусора

3.6 Сборщик мусора с малой задержкой

3.7 Правильный выбор сборщика мусора

3.8 Фактический бой: стратегия распределения и восстановления памяти

3.9 Резюме

Глава 4 Инструменты мониторинга производительности виртуальной машины и устранения неполадок

4.1 Обзор

4.2 Основные средства устранения неполадок

4.3 Визуальный инструмент устранения неполадок

4.4 Плагины и инструменты для виртуальных машин HotSpot

4.5 Краткое содержание этой главы

Глава 5. Анализ и практика настройки

5.1 Обзор

5.2 Анализ случая

5.3 Актуальный бой: настройка скорости бега Eclipse

5.4 Краткое содержание главы

3. Подсистема выполнения виртуальной машины

Результат компиляции кода преобразуется из локального машинного кода в байт-код, что является небольшим шагом в развитии форматов хранения, но большим шагом в развитии языков программирования.

Глава 6: Структура файла класса

6.1 Обзор

6.2 Краеугольный камень неуместности

6.3 Структура файла класса Class

6.4 Введение в инструкции байт-кода

6.5 Публичный дизайн, частная реализация

6.6 Разработка структуры файла класса

6.7 Краткое содержание главы

Глава 7: Механизм загрузки классов виртуальных машин

7.1 Обзор

7.2 Время загрузки класса

7.3 Процесс загрузки класса

7.4 Загрузчики классов

7.5 Модульная система Java

7.6 Краткое содержание главы

Глава 8: Механизм выполнения байт-кода виртуальной машины

8.1 Обзор

8.2 Структура кадра стека времени выполнения

8.3 Вызовы методов

8.4 Поддержка динамически типизированного языка

8.5 Механизм интерпретации и исполнения байт-кода на основе стека

8.6 Краткое содержание главы

Глава 9: Случаи и практика загрузки классов и подсистем выполнения

9.1 Обзор

9.2 Анализ случая

9.3 Фактический бой: реализовать функцию удаленного выполнения, сделав это самостоятельно

9.4 Краткое содержание главы

4. Компиляция программы и оптимизация кода

С первого дня появления компьютерных программ стремление к эффективности было естественным и твердым убеждением программистов, этот процесс подобен нескончаемой, нескончаемой гонке Формулы 1. Программист — водитель, а технологическая платформа — на трассе Ускорение гоночного автомобиля.

Глава 10: Компиляция и оптимизация внешнего интерфейса

10.1 Обзор

10.2 Компилятор Javac

10.3 Вкус синтаксического сахара Java

10.4 Практический бой: подключаемый процессор аннотаций

10.5 Краткое содержание главы

Глава 11. Компиляция и оптимизация серверной части

11.1 Обзор

11.2 Своевременный компилятор

11.3 Компиляторы, опережающие время

11.4 Методы оптимизации компилятора

11.5 Actual Combat: глубокое понимание компилятора Graal

11.6 Краткое содержание главы

5. Эффективный параллелизм

Глава 12: Модель памяти Java и потоки

Широкое применение параллельной обработки является фундаментальной причиной того, что закон Амда заменил закон Мура в качестве источника развития производительности компьютеров, а также является самым мощным оружием для людей, позволяющим сократить вычислительную мощность компьютеров.

12.1 Обзор

12.2 Эффективность и стабильность оборудования

12.3 Модель памяти Java

12.4 Java и потоки

12.5 Java и сопрограммы

12.6 Краткое содержание главы

Глава 13. Безопасность потоков и оптимизация блокировок

Мы понимаем структуру и работу модели памяти Java виртуальной машины, объясняем воплощение атомарности, видимости и порядка в модели памяти Java, а также сначала вводим правила и использование принципа возникновения. Кроме того, мы также узнали, как потоки реализованы в языке Java и как работает новая модель параллелизма, представляющая будущее многопоточности в Java.

Что касается темы «эффективного параллелизма», в этой главе в основном рассказывается, как виртуальная машина достигает «параллельности», какие методы оптимизации предоставляются.

13.1 Обзор

13.2 Безопасность резьбы

13.3 Оптимизация блокировки

13.4 Краткое содержание главы

Supongo que te gusta

Origin blog.csdn.net/SharingOfficer/article/details/130889538
Recomendado
Clasificación