Углубленное ядро ​​JVM - первое понимание JVM

JVM

Концепция JVM

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

какие виртуальные машины

  虚拟机名称  实现方式
  VMWare      使用软件模拟物理CPU的指令集
  Visual Box  使用软件模拟物理CPU的指令集
  JVM         使用软件模拟Java 字节码的指令集

История JVM

1996 SUN JDK 1.0 Classic VM, чистая операция интерпретации, с использованием подключаемого модуля для JIT

1997 JDK1.1 выпустил AWT, внутренние классы, JDBC, RMI, отражение

1998 JDK1.2 Solaris Exact VM JIT интерпретатор микс Точное управление памятью Точное управление памятью с учетом типа данных Улучшена производительность GC. С этого времени в Swing Collections появился Java2 J2SE J2EE J2ME.

2000 JDK 1.3 Hotspot выпущен как виртуальная машина по умолчанию Присоединяйтесь к JavaSound

2002 JDK 1.4 Classic VM вышла из стадии истории Утверждение регулярного выражения NIO Библиотека классов шифрования API журнала IpV6

Выпущенный в 2004 году JDK1.5 - это JDK5, J2SE 5, дженерики Java 5, аннотации, упаковка, перечисление, параметры переменной длины, цикл Foreach.

JDK1.6 JDK6, поддержка языка сценариев, JDBC 4.0, API компилятора Java

Выпуск JDK7 в 2011 г. Отложенный выпуск проекта на JDK8, G1, динамические усовершенствования языка, сжатые указатели в 64-битных системах, NIO 2.0

2014 JDK8 выпустила лямбда-выражения, улучшения синтаксиса, аннотации типов Java.

Модульность JDK9 в 2016 г.

История JVM - События

Наиболее широко используемой JVM является HotSpot.

HotSpot разработан для Longview Technologies и приобретен SUN

В 2006 году исходный код Java был открыт, и была создана OpenJDK HotSpot, ставшая виртуальной машиной в Sun JDK и OpenJDK.

2008 Oracle приобретает BEA и получает виртуальную машину JRockit.

Oracle приобрела Sun в 2010 году, приобрела Hotspot

Oracle объявила об интеграции JRockit и Hotspot в JDK8, дополнительные преимущества На базе Hotspot пересадить отличные возможности JRockit

Знакомство с JVM — различные JVM

KVM: выпущен SUN до выхода IOS Android, широко используется в системах мобильных телефонов.

CDC/CLDC HotSpot: создание единого интерфейса программирования Java на мобильных телефонах, электронных книгах, КПК и других устройствах. Важная часть J2ME

JRockit :BEA

IBM J9 VM: внутри IBM

Apache Harmony: Java-программа, на которой работает платформа, совместимая с JDK 1.5 и JDK 1.6 Плохая связь с Oracle Exit JCP, раскол в сообществе Java После появления OpenJDK в 2011 году он был оспорен и отправлен на пенсию. Нет крупного коммерческого опыта Положительно влияет на развитие Android

Знакомство с JVM — спецификация

Спецификация языка Java

  语法 变量 类型 文法 

Спецификация JVM

Class文件类型 运行时数据  帧栈  虚拟机的启动 虚拟机的指令集

Спецификация языка Java определяет, что такое язык Java. Язык Java и JVM относительно независимы. Groovy, Clojure и Scala могут работать на JVM. JVM в основном определяет файлы двоичных классов, набор инструкций JVM и т. д.

Целочисленное выражение

Исходный код: первый бит — бит знака (0 — положительный, 1 — отрицательный)

Инверсный код: бит знака не перемещается, исходный код инвертируется

Отрицательное дополнение: знаковый бит не меняется, инверсный код добавляется на 1

Дополнение положительного числа: то же, что и исходный код

вывести двоичное представление целого числа интервал а=-6; для (целое я = 0; я >>i)>>>(31-i); Система.выход.печать(т); }

Зачем использовать дополнение? Поскольку ноль не делится на положительный и отрицательный в вычислительной концепции людей, обращение с 0 унифицировано. Унифицированная обработка сложения и вычитания без добавления операций вычитания