Spec-Zone .ru
спецификации, руководства, описания, API
|
Содержание | Предыдущий | Следующий | Индекс | Спецификация Виртуальной машины JavaTM |
Работа
Загрузкаbyte
илиboolean
от массива
Формат
baload
Формы
baload = 51 (0x33)
Стек операнда
..., arrayref, индекс..., значение
Описание
arrayref должен иметь типreference
и должен обратиться к массиву, компоненты которого имеют типbyte
или типаboolean
. Индекс должен иметь типint
. И arrayref и индекс выталкиваются от стека операнда. Если компоненты массива имеют типbyte
, компонент массива по индексу получается и расширяется до знака наint
значение. Если компоненты массива имеют типboolean
, компонент массива по индексу получается и расширяется до нуля наint
значение. В любом случае получающееся значение продвигается на стек операнда.
Исключения на этапе выполнения
Если arrayrefnull
, baload бросает aNullPointerException
.
Иначе, если индекс не в пределах границ массива, на который ссылается arrayref, baload инструкция бросаетArrayIndex
OutOfBoundsException
.
Примечания
baload инструкция используется, чтобы загрузить значения от обоихbyte
иboolean
массивы. В реализации Sun виртуальной машины Java,boolean
массивы (массивы типаT_BOOLEAN
; см. §3.2, и описание newarray инструкции в этой главе) реализуются как массивы 8-разрядных значений. Другие реализации могут реализовать упакованныйboolean
массивы; baload инструкция таких реализаций должна использоваться, чтобы получить доступ к тем массивам.
Работа
Хранилище вbyte
илиboolean
массив
Формат
bastore
Формы
bastore = 84 (0x54)
Стек операнда
..., arrayref, индекс, оценивают...
Описание
arrayref должен иметь типreference
и должен обратиться к массиву, компоненты которого имеют типbyte
или типаboolean
. Индекс и значение должны оба иметь типint
. arrayref, индекс, и значение выталкиваются от стека операнда. Если компоненты массива имеют типbyte
,int
значение является усеченным к abyte
и сохраненный, поскольку компонент массива индексируется индексом. Если компоненты массива имеют типboolean
,int
значение является усеченным к своему биту младшего разряда, тогда расширенному до нуля на размер хранения для компонентовboolean
массивы используются реализацией. Результат сохранен как компонент массива, индексированного индексом.
Исключения на этапе выполнения
Если arrayrefnull
, bastore бросает aNullPointerException
.
Иначе, если индекс не в пределах границ массива, на который ссылается arrayref, bastore инструкция бросает ArrayIndexOutOfBoundsException
.
Примечания
bastore инструкция используется, чтобы сохранить значения в обоихbyte
иboolean
массивы. В реализации Sun виртуальной машины Java,boolean
массивы (массивы типаT_BOOLEAN
; см. §3.2, и описание newarray инструкции в этой главе) реализуются как массивы 8-разрядных значений. Другие реализации могут реализовать упакованныйboolean
массивы; в таких реализациях bastore инструкция должна быть в состоянии сохранитьboolean
значения в упакованныйboolean
массивы так же какbyte
значения вbyte
массивы.
Работа
Продвинутьbyte
Формат
bipush байт
Формы
bipush = 16 (0x10)
Стек операнда
......, значение
Описание
Непосредственный байт расширяется до знака на int
значение. То значение продвигается на стек операнда.
Содержание | Предыдущий | Следующий | Индекс
Спецификация Виртуальной машины JavaTM
Авторское право © Sun Microsystems, Inc 1999 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к jvm@java.sun.com