Spec-Zone .ru
спецификации, руководства, описания, API
Содержание | Предыдущий | Следующий | ИндексСпецификация Виртуальной машины JavaTM


A B C D F Г Я J L М. N P R S T W

новый

Работа

Создайте новый объект

Формат

новый
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

Работа

Создайте новый массив

Формат

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 бросает a NegativeArraySizeException.

Примечания

В реализации Sun виртуальной машины Java, массивах типа boolean (atype T_BOOLEAN) сохранены как массивы 8-разрядных значений и управляются, используя baload и bastore инструкции, инструкции что также массивы доступа типа byte. Другие реализации могут реализовать упакованный boolean массивы; baload и bastore инструкции должны все еще использоваться, чтобы получить доступ к тем массивам.


только для указанных целей

Работа

Ничего не сделайте

Формат

только для указанных целей

Формы

только для указанных целей = 0 (0x0)

Стек операнда

Никакое изменение

Описание

Ничего не сделайте.


Содержание | Предыдущий | Следующий | Индекс

Спецификация Виртуальной машины JavaTM
Авторское право © Sun Microsystems, Inc 1999 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к jvm@java.sun.com

free hit counter