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


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

caload

Работа

Загрузка char от массива

Формат

caload

Формы

caload = 52 (0x34)

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

..., arrayref, индекс..., значение

Описание

arrayref должен иметь тип reference и должен обратиться к массиву, компоненты которого имеют тип char. Индекс должен иметь тип int. И arrayref и индекс выталкиваются от стека операнда. Компонент массива по индексу получается и расширяется до нуля на int значение. То значение продвигается на стек операнда.

Исключения на этапе выполнения

Если arrayref null, caload бросает a NullPointerException.

Иначе, если индекс не в пределах границ массива, на который ссылается arrayref, caload инструкция бросает ArrayIndexOutOfBoundsException.


castore

Работа

Хранилище в char массив

Формат

castore

Формы

castore = 85 (0x55)

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

..., arrayref, индекс, оценивают...

Описание

arrayref должен иметь тип reference и должен обратиться к массиву, компоненты которого имеют тип char. Индекс и значение должны оба иметь тип int. arrayref, индекс, и значение выталкиваются от стека операнда. int значение является усеченным к a char и сохраненный, поскольку компонент массива индексируется индексом.

Исключения на этапе выполнения

Если arrayref null, castore бросает a NullPointerException.

Иначе, если индекс не в пределах границ массива, на который ссылается arrayref, castore инструкция бросает ArrayIndexOutOfBoundsException.


checkcast

Работа

Проверьте, имеет ли объект данный тип

Формат

checkcast
indexbyte1
indexbyte2

Формы

checkcast = 192 (0xc0)

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

..., objectref..., objectref

Описание

objectref должен иметь тип reference. indexbyte1 без знака и indexbyte2 используются, чтобы создать индекс в пул константы этапа выполнения текущего класса (§3.6), где значение индекса (indexbyte1 << 8) | indexbyte2. Элемент пула константы этапа выполнения по индексу должен быть символьной ссылкой на класс, массив, или интерфейсный тип. Именованный класс, массив, или интерфейсный тип разрешаются (§5.4.3.1).

Если objectref null или может быть брошен к разрешенному классу, массиву, или интерфейсному типу, стек операнда неизменен; иначе, checkcast инструкция бросает a ClassCastException.

Следующие правила используются, чтобы определить, ли objectref, который не является null может быть брошен к разрешенному типу: если S является классом объекта, упомянутого objectref, и T является разрешенным классом, массивом, или интерфейсный тип, checkcast определяет, может ли objectref быть брошен к типу T следующим образом:

Соединение Исключений

Во время разрешения символьной ссылки на класс, массив, или интерфейсный тип, может быть выдано любое из исключений, задокументированных в Раздел 5.4.3.1.

Исключение на этапе выполнения

Иначе, если objectref не может быть брошен к разрешенному классу, массиву, или интерфейсному типу, checkcast инструкция бросает a ClassCastException.

Примечания

checkcast инструкция очень подобна instanceof инструкции. Это отличается по своей обработке null, его поведение, когда его тест перестал работать (checkcast выдает исключение, instanceof, продвигает код результата), и его эффект на стек операнда.


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

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

free hit counter