Оглавление
- Предисловие к Java SE 7 изданию
- Предисловие ко второму изданию
- Предисловие к первому изданию
- 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. Атрибут
AnnotationDefault - 4.7.21. Атрибут
BootstrapMethods
- 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
- 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.11. Ограничения виртуальной машины Java
- 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_
- 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
- istore_
- 7. Мемоишники кодов операций по коду операции
- Индекс
- A. Ограниченное разрешение на использование лицензии
© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.