Spec-Zone.ru › Java Virtual Machine Specification 7

Спецификация виртуальной машины Java®

Java SE 7 издание

Тим Линдхольм

Фрэнк Йеллин

Гилад Браха

Алекс Бакли

28.02.2013

Правовая информация

Оглавление

Предисловие к Java SE 7 изданию
Предисловие ко второму изданию
Предисловие к первому изданию
1. Введение
1.1. Немного истории
1.2. Виртуальная машина Java
1.3. Краткое содержание глав
1.4. Обозначения
2. Структура виртуальной машины Java
2.1. Формат файла class
2.2. Типы данных
2.3. Примитивные типы и значения
2.3.1. Целочисленные типы и значения
2.3.2. Типы с плавающей точкой, множества значений и значения
2.3.3. Тип returnAddress и значения
2.3.4. Тип boolean
2.4. Ссылочные типы и значения
2.5. Области данных во время выполнения
2.5.1. Регистр pc
2.5.2. Стек виртуальной машины Java
2.5.3. Куча
2.5.4. Область методов
2.5.5. Константный пул во время выполнения
2.5.6. Стек методов нативных функций
2.6. Фреймы
2.6.1. Локальные переменные
2.6.2. Стек операндов
2.6.3. Динамическая компоновка
2.6.4. Завершение обычного вызова метода
2.6.5. Прерывистое завершение вызова метода
2.7. Представление объектов
2.8. Арифметика с плавающей точкой
2.8.1. Арифметика с плавающей точкой виртуальной машины Java и IEEE 754
2.8.2. Режимы с плавающей точкой
2.8.3. Преобразование множества значений
2.9. Специальные методы
2.10. Исключения
2.11. Краткое описание набора инструкций
2.11.1. Типы и виртуальная машина Java
2.11.2. Инструкции загрузки и сохранения
2.11.3. Арифметические инструкции
2.11.4. Инструкции преобразования типов
2.11.5. Создание и управление объектами
2.11.6. Инструкции управления стеком операндов
2.11.7. Инструкции передачи управления
2.11.8. Инструкции вызова и возврата методов
2.11.9. Генерация исключений
2.11.10. Синхронизация
2.12. Библиотеки классов
2.13. Открытый дизайн, закрытая реализация
3. Компиляция для виртуальной машины Java
3.1. Формат примеров
3.2. Использование констант, локальных переменных и управляющих конструкций
3.3. Арифметика
3.4. Доступ к константному пулу во время выполнения
3.5. Более сложные примеры управления
3.6. Приём аргументов
3.7. Вызов методов
3.8. Работа с экземплярами классов
3.9. Массивы
3.10. Компиляция переключателей
3.11. Операции со стеком операндов
3.12. Генерация и обработка исключений
3.13. Компиляция finally
3.14. Синхронизация
3.15. Аннотации
4. Формат файла class
END_OF_DOCUMENT_MARKER
4.1. Структура ClassFile
4.2. Внутренняя форма имён
4.2.1. Имена бинарных классов и интерфейсов
4.2.2. Неквалифицированные имена
4.3. Дескрипторы и сигнатуры
4.3.1. Нотация грамматики
4.3.2. Дескрипторы полей
4.3.3. Дескрипторы методов
4.3.4. Сигнатуры
4.4. Пул констант
4.4.1. Структура CONSTANT_Class_info
4.4.2. Структуры CONSTANT_Fieldref_info, CONSTANT_Methodref_info и CONSTANT_InterfaceMethodref_info
4.4.3. Структура CONSTANT_String_info
4.4.4. Структуры CONSTANT_Integer_info и CONSTANT_Float_info
4.4.5. Структуры CONSTANT_Long_info и CONSTANT_Double_info
4.4.6. Структура CONSTANT_NameAndType_info
4.4.7. Структура CONSTANT_Utf8_info
4.4.8. Структура CONSTANT_MethodHandle_info
4.4.9. Структура CONSTANT_MethodType_info
4.4.10. Структура CONSTANT_InvokeDynamic_info
4.5. Поля
4.6. Методы
4.7. Атрибуты
4.7.1. Определение и именование новых атрибутов
4.7.2. Атрибут ConstantValue
4.7.3. Атрибут Code
4.7.4. Атрибут StackMapTable
4.7.5. Атрибут Exceptions
4.7.6. Атрибут InnerClasses
4.7.7. Атрибут EnclosingMethod
4.7.8. Атрибут Synthetic
4.7.9. Атрибут Signature
4.7.10. Атрибут SourceFile
4.7.11. Атрибут SourceDebugExtension
4.7.12. Атрибут LineNumberTable
4.7.13. Атрибут LocalVariableTable
4.7.14. Атрибут LocalVariableTypeTable
4.7.15. Атрибут Deprecated
4.7.16. Атрибут RuntimeVisibleAnnotations
4.7.16.1. Структура element_value
4.7.17. Атрибут RuntimeInvisibleAnnotations
4.7.18. Атрибут RuntimeVisibleParameterAnnotations
4.7.19. Атрибут RuntimeInvisibleParameterAnnotations
4.7.20. Атрибут AnnotationDefault
4.7.21. Атрибут BootstrapMethods
4.8. Проверка формата
4.9. Ограничения на код виртуальной машины Java
4.9.1. Статические ограничения
4.9.2. Структурные ограничения
4.10. Проверка файлов class
4.10.1. Проверка с помощью проверки типов
4.10.1.1. Доступы к артефактам виртуальной машины Java
4.10.1.2. Система типов проверки
4.10.1.3. Представление инструкций
4.10.1.4. Представление фреймов карты стека
4.10.1.5. Проверка типов абстрактных и нативных методов
4.10.1.6. Проверка типов методов с кодом
4.10.1.7. Проверка типов инструкций загрузки и сохранения
4.10.1.8. Проверка типов для членов protected
4.10.1.9. Проверка типов инструкций
aaload
aastore
aconst_null
aload
aload_<n>
anewarray
areturn
arraylength
astore
astore_<n>
athrow
baload
bastore
bipush
caload
castore
checkcast
d2f
d2i
d2l
dadd
daload
dastore
dcmp<op>
dconst_<d>
ddiv
dload
dload_<n>
dmul
dneg
drem
dreturn
dstore
dstore_<n>
dsub
dup
dup_x1
dup_x2
dup2
dup2_x1
dup2_x2
f2d
f2i
f2l
fadd
faload
fastore
fcmp<op>
fconst_<f>
fdiv
fload
fload_<n>
fmul
fneg
frem
freturn
fstore
fstore_<n>
fsub
getfield
getstatic
goto
goto_w
i2b
i2c
i2d
i2f
i2l
i2s
iadd
iaload
iand
iastore
if_acmp<cond>
if_icmp<cond>
if<cond>
ifnonnull
ifnull
iinc
iload
iload_<n>
imul
ineg
instanceof
invokedynamic
invokeinterface
invokespecial
invokestatic
invokevirtual
ior
irem
ireturn
ishl
ishr
istore
istore<n>
isub
iushr
ixor
l2d
l2f
l2i
ladd
laload
land
lastore
lcmp
lconst<l>
ldc
ldc_w
ldc2_w
ldiv
lload
lload<n>
lmul
lneg
lookupswitch
lor
lrem
lreturn
lshl
lshr
lstore
lstore<n>
lsub
lushr
lxor
monitorenter
monitorexit
multianewarray
new
newarray
nop
pop
pop2
putfield
putstatic
return
saload
sastore
sipush
swap
tableswitch
wide
4.10.2. Проверка по типу вывода
4.10.2.1. Процесс проверки по типу вывода
4.10.2.2. Верификатор байткода
4.10.2.3. Значения типов long и double
4.10.2.4. Методы инициализации экземпляра и недавно созданные объекты
4.10.2.5. Исключения и finally
4.11. Ограничения виртуальной машины Java
5. Загрузка, связывание и инициализация
5.1. Пул постоянных времени выполнения
5.2. Запуск виртуальной машины Java
5.3. Создание и загрузка
5.3.1. Загрузка с использованием загрузчика Bootstrap
5.3.2. Загрузка с помощью пользовательского загрузчика классов
5.3.3. Создание классов массивов
5.3.4. Ограничения загрузки
5.3.5. Вывод класса из представления файла class
5.4. Связывание
5.4.1. Верификация
5.4.2. Подготовка
5.4.3. Разрешение
5.4.3.1. Разрешение класса и интерфейса
5.4.3.2. Разрешение поля
5.4.3.3. Разрешение метода
5.4.3.4. Разрешение метода интерфейса
5.4.3.5. Разрешение типа метода и ссылки на метод
5.4.3.6. Разрешение спецификатора места вызова
5.4.4. Управление доступом
5.4.5. Переопределение метода
5.5. Инициализация
5.6. Связывание реализаций методов нативного кода
5.7. Выход из виртуальной машины Java
6. Набор инструкций виртуальной машины Java
6.1. Предположения: Смысл «должен»
6.2. Зарезервированные опера коды
6.3. Ошибки виртуальной машины
6.4. Формат описаний инструкций
mnemonic
6.5. Инструкции
aaload
aastore
aconst_null
aload
aload_
anewarray
areturn
arraylength
astore
astore_
athrow
baload
bastore
bipush
caload
castore
checkcast
d2f
d2i
d2l
dadd
daload
dastore
dcmp
dconst_
ddiv
dload
dload_
dmul
dneg
drem
dreturn
dstore
dstore_
dsub
dup
dup_x1
dup_x2
dup2
dup2_x1
dup2_x2
f2d
f2i
f2l
fadd
faload
fastore
fcmp
fconst_
fdiv
fload
fload_
fmul
fneg
frem
freturn
fstore
fstore_
fsub
getfield
getstatic
goto
goto_w
i2b
i2c
i2d
i2f
i2l
i2s
iadd
iaload
iand
iastore
iconst_
idiv
if_acmp
if_icmp
if
ifnonnull
ifnull
iinc
iload
iload_
imul
ineg
instanceof
invokedynamic
invokeinterface
invokespecial
invokestatic
invokevirtual
ior
irem
ireturn
ishl
ishr
istore
istore_
isub
iushr
ixor
jsr
jsr_w
l2d
l2f
l2i
ladd
laload
land
lastore
lcmp
lconst_
ldc
ldc_w
ldc2_w
ldiv
lload
lload_
lmul
lneg
lookupswitch
lor
lrem
lreturn
lshl
lshr
lstore
lstore_
lsub
lushr
lxor
monitorenter
monitorexit
multianewarray
new
newarray
nop
pop
pop2
putfield
putstatic
ret
return
saload
sastore
sipush
swap
tableswitch
wide
7. Мемоишники кодов операций по коду операции
Индекс
A. Ограниченное разрешение на использование лицензии

© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API