Концепция 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 унифицировано. Унифицированная обработка сложения и вычитания без добавления операций вычитания