Оглавление
- Предисловие к Java SE 8 Edition
- 1. Введение
- 2. Структура виртуальной машины Java
-
- 2.1. Формат файла
class - 2.2. Типы данных
- 2.3. Примитивные типы и значения
- 2.4. Ссылочные типы и значения
- 2.5. Области данных во время выполнения
- 2.6. Фреймы
- 2.7. Представление объектов
- 2.8. Арифметика с плавающей запятой
- 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. Публичный дизайн, закрытая реализация
- 2.1. Формат файла
- 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
-
- 4.1. Структура
ClassFile - 4.2. Внутренняя форма имён
- 4.3. Дескрипторы
- 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.4.1. Структура
- 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.17. Атрибут
RuntimeInvisibleAnnotations - 4.7.18. Атрибут
RuntimeVisibleParameterAnnotations - 4.7.19. Атрибут
RuntimeInvisibleParameterAnnotations - 4.7.20. Атрибут
RuntimeVisibleTypeAnnotations - 4.7.21. Атрибут
RuntimeInvisibleTypeAnnotations - 4.7.22. Атрибут
AnnotationDefault - 4.7.23. Атрибут
BootstrapMethods - 4.7.24. Атрибут
MethodParameters
- 4.8. Проверка формата
- 4.9. Ограничения на код виртуальной машины Java
- 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. Проверка типов инструкций
- 4.1. Структура
-
- 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, iushr
- istore, istore_<n>
- isub
- ixor
- l2d, l2f, l2i
- ladd
- laload
- land
- lastore
- lcmp
-
- 5. Загрузка, линковка и инициализация
-
- 5.1. Пул констант времени выполнения
- 5.2. Запуск виртуальной машины Java
- 5.3. Создание и загрузка
- 5.4. Линковка
- 5.5. Инициализация
- 5.6. Связывание реализаций нативных методов
- 5.7. Выход из виртуальной машины Java
- 6. Набор инструкций виртуальной машины Java
-
- 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_<n>
- isub
- iushr
- ixor
- jsr
- jsr_w
- 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
- ret
- return
- saload
- sastore
- sipush
- swap
- tableswitch
- wide
- 7. Мемоиники OPCODE по OPCODE
- Индекс
- A. Ограниченное предоставление лицензии