VM Spec

Contents | Prev | Next | Index | The JavaTM Virtual Machine Specification

symbols A B C D E F G H I J L M N O P Q R S T U V W Z

# A

aaload instruction

definition, 175

aastore instruction

compilation examples, arrays, 383
constraints, structural, 139
definition, 176

abrupt completion

method invocation, 74

abstract modifier

See also AbstractMethodError; ACC_ABSTRACT flag
in class declarations, 28
in method declarations, 32

AbstractMethodError

definition, 45
thrown by

invokeinterface, 280
invokespecial, 284
invokevirtual, 291

thrown during method resolution, 168

ACC_ABSTRACT flag

See also abstract modifier
(access_flags item of ClassFile structure), 96
(access_flags item of method_info structure), 115
(inner_class_access_flags item of InnerClasses_attribute structure), 127

ACC_FINAL flag

See also final modifier
(access_flags item of ClassFile structure), 96
(access_flags item of field_info structure), 113
(access_flags item of method_info structure), 115
(inner_class_access_flags item of InnerClasses_attribute structure), 127

ACC_INTERFACE flag

See also interfaces
(access_flags item of ClassFile structure), 96
(inner_class_access_flags item of InnerClasses_attribute structure), 127

ACC_NATIVE flag

See also native modifier
(access_flags item of method_info structure), 115

ACC_PRIVATE flag

See also private modifier
(access_flags item of field_info structure), 113
(access_flags item of method_info structure), 115
(inner_class_access_flags item of InnerClasses_attribute structure), 127

ACC_PROTECTED flag

See also protected modifier
(access_flags item of field_info structure), 113
(access_flags item of method_info structure), 115
(inner_class_access_flags item of InnerClasses_attribute structure), 127

ACC_PUBLIC flag

See also public modifier
(access_flags item of ClassFile structure), 96
(access_flags item of field_info structure), 113
(access_flags item of method_info structure), 115
(inner_class_access_flags item of InnerClasses_attribute structure), 127

ACC_STATIC flag

See also static modifier
(access_flags item of field_info structure), 113
(access_flags item of method_info structure), 115
(inner_class_access_flags item of InnerClasses_attribute structure), 127

ACC_STRICT flag

See also FP-strict floating-point mode, strictfp modifier
(access_flags item of method_info structure), 115

ACC_SUPER flag

See also superclasses
(access_flags item of ClassFile structure), 96

ACC_SYNCHRONIZED flag

See also synchronization
(access_flags item of method_info structure), 115

ACC_TRANSIENT flag

See also transient modifier
(access_flags item of field_info structure), 113

ACC_VOLATILE flag

See also volatile modifier
(access_flags item of field_info structure), 113

access control

See also access_flags item, IllegalAccessError
default access, 27
during dynamic method lookup

invokeinterface, 280
invokevirtual, 291

enforcement, 169
final fields

putfield, 348
putstatic, 350

instance initialization methods, 78
package private access, 169
private access, 27
protected access, 27
public access, 27
qualified names and, 26

access_flags item

See also access control
(ClassFile structure), 95
(field_info structure), 112
(method_info structure), 115

aconst_null instruction

definition, 178

actions

main memory subsystem

lock, 399
read, 398
unlock, 399
write, 399

prescient store, with threads, 404
thread

assign, 398
constraints on relationships among, 399
load, 399
lock, 399
store, 399
unlock, 399
use, 399

adding

double, dadd, 198
float, fadd, 228
int, iadd, 260
long, ladd, 309

algorithms

class file verification, 140
conversion of bytes item, CONSTANT_Float_info structure, to float value, 107
conversion of high_bytes and low_bytes items, CONSTANT_Double_info structure, to double value, 109
creation and loading

array classes, 158, 161
classes, 157
interfaces, 158
using a user-defined class loader, 160
using the default class loader, 160

string literals, derivation of, 157

alignment

code array, 121
Java virtual machine instructions, implementation implications, 80

aload instruction

See alsoastore instruction, wide instruction
constraints, static, 136
definition, 179

aload_<n> instructions

See also astore_<n> instructions
compilation examples

arrays, 382
catching exceptions, 388, 389, 391
compiling finally, 392, 393, 394
invoking methods, 376, 378
operand stack operations, 386
throwing exceptions, 387, 388
working with class instances, 379, 380

constraints, static, 136
definition, 180

ANDing

int, bitwise, iand, 262
long, bitwise, land, 311

anewarray instruction

compilation examples, arrays, 382
constraints, static, 136
definition, 181

areturn instruction

compilation examples

arrays, 383
working with class instances, 379, 380

constraints, structural, 138
definition, 182

arithmetic

adding

double, dadd, 198
float, fadd, 228
int, iadd, 260
long, ladd, 309

ArithmeticException, 44

thrown by idiv, 265
thrown by irem, 295
thrown by ldiv, 318
thrown by lrem, 326

compilation examples, 369
dividing

double, ddiv, 205
float, fdiv, 235
int, idiv, 265
long, ldiv, 318

exception, ArithmeticException, 44
floating-point, 75
instruction set, summary, 84
multiplying

double, dmul, 209
float, fmul, 239
int, imul, 276
long, lmul, 321

negating

double, dneg, 211
float, fneg, 241
int, ineg, 277
long, lneg, 322

remainder

double, drem, 212
float, frem, 212
int, irem, 295
long, lrem, 326

subtracting

double, dsub, 217
float, fsub, 247
int, isub, 301
long, lsub, 332

ArithmeticException

definition, 44
thrown by

idiv, 265
irem, 295
ldiv, 318
lrem, 326

array(s)

See also class(es); interfaces; references; types
accessing, 39
ArrayStoreException, 44
classes of, 15
compilation of, 381
components, 38
creating, 39

instruction summary, 88
multidimensional, multianewarray, 339
with components of primitive type, newarray, 343
with components of reference type, anewarray, 181

creation of, classes, 158, 161
definition, 38
dimensions, number limitation, 153
exceptions

ArrayIndexOutOfBoundsException, 39
NegativeArraySizeException, 44

field descriptor

dimension limits on, 104
specification, 101

initializing, 39
length, 38

fetching, arraylength, 183

loading from

byte or boolean, baload, 188
char, caload, 191
double, daload, 200
float, faload, 230
int, iaload, 261
long, laload, 310
reference, aaload, 175
short, saload, 354

manipulating, instruction summary, 88
storing into

byte or boolean, bastore, 189
char, castore, 192
double, dastore, 201
float, fastore, 231
int, iastore, 263
long, lastore, 312
reference, aastore, 176
short, sastore, 355

types, 11, 38

Java virtual machine mapping, 82

variables, 38

ArrayIndexOutOfBoundsException

See also IndexOutOfBoundsException
thrown by

aaload, 175
aastore, 177
baload, 188
bastore, 188
caload, 191
castore, 192
daload, 200
dastore, 201
faload, 230
fastore, 231
iaload, 261
iastore, 263
laload, 310
lastore, 312
saload, 354
sastore, 355

arraylength instruction

definition, 183

ArrayStoreException

definition, 44
thrown by aastore, 177

assembly language

Java virtual machine, format, 361

assignment

compatible, 13

failure, ArrayStoreException thrown when, 44

conversion, 21

assumptions

meaning of "must" in instruction descriptions, 171

astore instruction

See also aload instruction; ret instruction; wide instruction
constraints, static, 136
definition, 184

astore_<n> instructions

See also aload_<n> instructions; ret instruction
compilation examples

arrays, 382
catching exceptions, 388, 389, 391
compiling finally, 392, 393, 394
throwing exceptions, 388
working with class instances, 379

constraints, static, 136
definition, 185

athrow instruction

compilation examples

compiling finally, 392, 394
throwing exceptions, 387

constraints, structural, 139
definition, 186

attribute_info structure

(generic structure of items in attributes tables), 117

attribute_length item

(attribute_info generic structure), 117
(Code_attribute structure), 121
(ConstantValue_attribute structure), 119
(Deprecated_attribute structure), 133
(Exceptions_attribute structure), 124
(InnerClasses_attribute structure), 125
(LineNumberTable_attribute structure), 130
(LocalVariableTable_attribute structure), 131
(SourceFile_attribute structure), 128
(Synthetic_attribute structure), 128

attribute_name_index item

(attribute_info generic structure), 117
(Code_attribute structure), 121
(ConstantValue_attribute structure), 119
(Deprecated_attribute structure), 133
(Exceptions_attribute structure), 123
(InnerClasses_attribute structure), 125
(LineNumberTable_attribute structure), 129
(LocalVariableTable_attribute structure), 131
(SourceFile_attribute structure), 128
(Synthetic_attribute structure), 128

attributes

See also ClassFile structure:

attribute_length item
attribute_name_index item
attributes table
attributes_count item

See also predefined attributes:

Code_attribute
ConstantValue_attribute
Deprecated_attribute
Exceptions_attribute
InnerClasses_attribute
LineNumberTable_attribute
LocalVariableTable_attribute
SourceFile_attribute
Synthetic_attribute

defining and naming new, 118

attributes table

(ClassFile structure), 98
(Code_attribute structure), 123
(field_info structure), 114
(method_info structure), 116

attributes_count item

(ClassFile structure), 98
(Code_attribute structure), 123
(field_info structure), 114
(method_info structure), 116

Contents | Prev | Next | Index

The JavaTM Virtual Machine Specification
Copyright © 1999 Sun Microsystems, Inc. All rights reserved
Please send any comments or corrections to jvm@java.sun.com