Spec-Zone .ru
спецификации, руководства, описания, API
|
Содержание | Предыдущий | Следующий | Индекс | Спецификация Виртуальной машины JavaTM |
Работа
Создайте новый объект
Формат
новый indexbyte1 indexbyte2
Формы
новый = 187 (0xbb)
Стек операнда
......, objectref
Описание
indexbyte1 без знака и indexbyte2 используются, чтобы создать индекс в пул константы этапа выполнения текущего класса (§3.6), где значение индекса (indexbyte1 << 8) | indexbyte2. Элемент пула константы этапа выполнения по индексу должен быть символьной ссылкой на класс, массив, или интерфейсный тип. Именованный класс, массив, или интерфейсный тип разрешаются (§5.4.3.1) и должны привести к типу класса (это не должно привести к массиву или интерфейсному типу). Память для нового экземпляра того класса выделяется от собранной "мусор" "кучи", и переменные экземпляра нового объекта инициализируются к их начальным значениям по умолчанию (§2.5.1). objectref, a reference
к экземпляру, продвигается на стек операнда.
На успешном разрешении класса это инициализируется (§5.5), если это не было уже инициализировано.
Соединение Исключений
Во время разрешения символьной ссылки на класс, массив, или интерфейсный тип, может быть выдано любое из исключений, задокументированных в Раздел 5.4.3.1.
Иначе, если символьная ссылка на класс, массив, или интерфейсный тип решает к интерфейсу илиabstract
класс, новые броскиInstantiationError
.
Исключение на этапе выполнения
Иначе, если выполнение этой новой инструкции вызывает инициализацию класса, на который ссылаются, новый может бросить Error
как детализировано в Разделе 2.17.5.
Отметить
Новая инструкция не полностью создает новый экземпляр; создание экземпляра не завершается, пока метод инициализации экземпляра не был вызван на неинициализированный экземпляр.
Работа
Создайте новый массив
Формат
newarray atype
Формы
newarray = 188 (0xbc)
Стек операнда
..., количество..., arrayref
Описание
Количество должно иметь тип int
. Это выталкивается от стека операнда. Количество представляет число элементов в массиве, чтобы быть созданным.
atype является кодом, который указывает на тип массива, чтобы создать. Это должно принять одно из следующих значений:
Тип массива atype T_BOOLEAN
4
T_CHAR
5
T_FLOAT
6
T_DOUBLE
7
T_BYTE
8
T_SHORT
9
T_INT
10
T_LONG
11
Новый массив, компоненты которого имеют тип atype и количества длины, выделяется от собранной "мусор" "кучи". A reference
arrayref к этому новому объекту массива продвигается в стек операнда. Каждый из элементов нового массива инициализируется к начальному значению по умолчанию для типа массива (§2.5.1).
Исключение на этапе выполнения
Если количество является меньше, чем нуль, newarray бросает aNegativeArray
SizeException
.
Примечания
В реализации Sun виртуальной машины Java, массивах типаboolean
(atypeT_BOOLEAN
) сохранены как массивы 8-разрядных значений и управляются, используя baload и bastore инструкции, инструкции что также массивы доступа типаbyte
. Другие реализации могут реализовать упакованныйboolean
массивы; baload и bastore инструкции должны все еще использоваться, чтобы получить доступ к тем массивам.
Работа
Ничего не сделайте
Формат
только для указанных целей
Формы
только для указанных целей = 0 (0x0)
Стек операнда
Никакое изменение
Описание
Ничего не сделайте.
Содержание | Предыдущий | Следующий | Индекс
Спецификация Виртуальной машины JavaTM
Авторское право © Sun Microsystems, Inc 1999 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к jvm@java.sun.com