Contents | Prev | Next | IndexThe JavaTM Virtual Machine Specification


I

I character
field descriptor meaning, 91
i2b instruction, 232
i2c instruction, 233
i2d instruction, 234
i2f instruction, 235
i2l instruction, 236
i2s instruction, 237
in Java Virtual Machine assembly language examples, constants and local variables in a for loop, 345
iadd instruction, 238
in Java Virtual Machine assembly language examples
arithmetic, 346
constants and local variables in a for loop, 345
receiving arguments, 351
iaload instruction, 239
in Java Virtual Machine assembly language examples, arrays, 357
iand instruction, 240
in Java Virtual Machine assembly language examples, arithmetic, 346
iastore instruction, 241
in Java Virtual Machine assembly language examples, arrays, 357
iconst_<i> instructions, 242
in Java Virtual Machine assembly language examples
arithmetic, 346
arrays, 358
compiling switches, 359, 360
constants and local variables in a for loop, 341, 345
while loop, 348, 350
identifiers
See also names; strings
non-name use in Java programs, 20
term definition, 6
as value of CONSTANT_Utf8_info structure
referenced by name_index item (CONSTANT_NameAndType_info structure), 100
referenced by name_index item (field_info structure), 103
referenced by name_index item (method_info structure), 105
identity
conversions, 14
idiv instruction, 243
IEEE 754 standard
comparing
double conformance, dcmpg, 183
double conformance, dcmpl, 183
float conformance, fcmpg, 211
float conformance, fcmpl, 211
conformance
add double, dadd, 179
add float, fadd, 208
dividing
double conformance, ddiv, 185
float conformance, fdiv, 214
float and double type conformance, 59
floating-point
comparison, conformance, 80
double bit layout, high_bytes and low_bytes items, CONSTANT_Double_info structure, 98
operation conformance to, 76
multiplying
double conformance, dmul, 189
float conformance, fmul, 218
remainder
drem not the same as the, drem, 192
frem not the same as the, frem, 221
subtracting
double conformance, dsub, 197
float conformance, fsub, 225
if_acmpeq instruction, 244
constraints, static, 119
if_acmpne instruction, 244
constraints, static, 119
if_icmpeq instruction, 245
constraints, static, 119
if_icmpge instruction, 245
constraints, static, 119
if_icmpgt instruction, 245
constraints, static, 119
if_icmple instruction, 245
constraints, static, 119
if_icmplt instruction, 245
constraints, static, 119
in Java Virtual Machine assembly language examples
constants and local variables in a for loop, 341, 342, 345
while loop, 348
if_icmpne instruction, 245
constraints, static, 119
ifeq instruction, 247
constraints, static, 119
ifge instruction, 247
constraints, static, 119
in Java Virtual Machine assembly language examples, while loop, 350
ifgt instruction, 247
constraints, static, 119
ifle instruction
constraints, static, 119
in Java Virtual Machine assembly language examples, while loop, 350
iflt instruction, 247
constraints, static, 119
in Java Virtual Machine assembly language examples
constants and local variables in a for loop, 343
while loop, 349
ifne instruction, 247
constraints, static, 119
in Java Virtual Machine assembly language examples, throwing exceptions, 362
ifnonnull instruction, 249
constraints, static, 119
ifnull instruction, 250
constraints, static, 119
in Java Virtual Machine assembly language examples, working with class instances, 355
iinc instruction, 251
constraints, static, 121
in Java Virtual Machine assembly language examples
constants and local variables in a for loop, 341, 342
while loop, 348
IllegalAccessError, 45
anewarray, 162
checkcast, 175
constant pool resolution generation of, 143, 146
during field reference resolution, 147
during method reference resolution, 148
getfield, 226
getstatic, 228
instanceof, 257
invokeinterface, 260
invokeinterface_quick, 403
invokespecial, 263
invokestatic, 266
invokevirtual, 268
as linking error, 39
multianewarray, 316
new, 318
putfield, 325
putstatic, 327
IllegalMonitorStateException, 38
monitorexit, 314
iload instruction, 252
See also istore instruction; wide instruction;
constraints, static, 121
iload_<n> instructions, 253
See also istore_<n> instructions
constraints, static, 121
in Java Virtual Machine assembly language examples
arithmetic, 346
arrays, 357
compiling switches, 359, 360
constants and local variables in a for loop, 341, 342, 345
receiving arguments, 351
throwing exceptions, 362
while loop, 348
working with class instances, 356
impdep1 reserved opcode, 152
impdep2 reserved opcode, 152
implementation
attributes
optional, handling, 107
predefined, support requirements, 107
bugs
exclusive end_pc workaround, 112
native method stacks, stack overflow not detected, 65
string literal resolution, 148
class files verification issues, 124
considerations
constant pool, 64
exception handling, 114
frames, extensions permitted, 68
heap, 63
Java stacks, 62
JDK 1.0.2 release, boolean arrays as byte arrays, 60
JDK 1.0.2 release, Java stacks, 62
JDK 1.0.2 release, Java stacks, size limit use, 63
JDK 1.0.2 release, heap, 63
JDK 1.0.2 release, method area, 64
JDK 1.0.2 release, constant pool, 64
JDK 1.0.2 release, native method stacks, 65
local variables, 66
method area, 64
native method stacks, 65
operand stacks, 67
word specification, 61
constraint enforcement strategies, 151
constraints
Java Virtual Machine code, 118
Java Virtual Machine code, static, 118
Java Virtual Machine code, structural, 121
decisions, constant pool entries for eight-byte constants, 98
exception handlers
Sun's Java compiled code characteristics, 133
try-finally clause, Sun's Java compiled code characteristics, 133
future possibilities, API changes in contract between Java Virtual Machine and ClassLoader class, 144
implications, opcode design and alignment, 71
integer data type underflow and overflow, not detected by Java Virtual Machine, 76
Java Virtual Machine, strategies and requirements, 81
JDK 1.0.2
line number - source code mapping issues, 115
major_version and minor_version numbers, 85
verification of class files restricted to those with class loaders, 142
object representation, 69
optimization, alternative instruction use, 127
requirements and non-requirements, 57
import declaration
type declaration effects, 21
imul instruction, 254
IncompatibleClassChangeError, 45
getfield, 226
getstatic, 228
invokeinterface, 259
invokeinterface_quick, 403
invokespecial, 263
invokestatic, 266
invokevirtual, 269
as linking error, 39
putfield, 325
putstatic, 327
increment
local variable by constant, iinc, 251
index item
(LocalVariableTable_attribute structure), 118
IndexOutOfBoundsException, 38
ineg instruction, 255
inexact
term definition, 8
infinities
IEEE 754 standard, Java Virtual Machine specification conformance to, 59
info array
(attribute_info generic structure), 106
inheritance
class hierarchy, 25
in interfaces, 32
methods, 27
term definition, 25
<init> special method
as instance initialization method name, 69
constant_pool reference to, 95
invocation of
static constraints, 120
structural constraints, 122
method_info structure access flags, 104
name_index item (method_info) reference, 105
initialization
detailed procedure description, 47
instance, structural constraints on instructions, 122
instances, data-flow analysis during class file verification, 131
methods, 69
overview, 42
static initializers, 29
term definition, 46
instanceof instruction, 256
instanceof_quick instruction, 401
instances
See also arrays
creating
new, 318
new_quick, 422
creation, 49
instruction summary, 79
situations that cause the, 49
determining if an object is a particular type
instances (cont.)
instanceof, 256
instanceof_quick, 401
entering monitor for, monitorenter, 312
exiting monitor for, monitorexit, 314
field descriptor specification, 91
getting values of fields from
getfield, 226
getfield_quick, 395
getfield_quick_w, 396
long or double, getfield2_quick, 398
initialization
data-flow analysis during class file verification, 131
field_info structure access flags, 104
structural constraints on instructions, 122
instanceof instruction, constraints, static, 120
Java Virtual Machine support for, 58
manipulation, instruction summary, 79
methods, 28
accessing, structural constraints on instructions, 122
data-flow analysis during class file verification, 132
initialization, invoking, invokenonvirtual_quick, 406
invoking, instruction summary, 80
invoking, invokespecial, 261
invoking, invokevirtual, 267
invoking, invokevirtual_quick, 411
invoking, invokevirtual_quick_w, 413
invoking, for java.lang.Object class, invokevirtualobject_quick, 415
method_info structure access flags, 104
operators on, 10
putting values into fields into
putfield, 325
putfield_quick, 423
putfield2_quick, 426
wide index, putfield_quick_w, 424
reference type relationship to, 58
representation of, in Java Virtual Machine, 69
term definition, 9
this object role in creation of, 50
uninitialized, restrictions, Pass 3 - bytecode verifier, 133
unreachable, finalization of, 51
variables, 11
accessing, structural constraints on instructions, 122
getting fields from, getfield, 226
getting fields from, getfield_quick, 395
getting fields from, getfield_quick_w, 396
getting fields from, getfield2_quick, 398
putting fields into, putfield, 325
putting fields into, putfield_quick, 423
putting fields into, putfield2_quick, 426
InstantiationError, 45
as linking error, 39
new, 318
instructions
alternative forms, optimization use of, 127
constraints, static, 118
Java Virtual Machine instruction set
execution loop, 71
format, 71
load, summary, 74
opcodes
data flow analysis, 126
verification process, 128
operands, verification process, 128
set
arithmetic, summary, 75
notation for families of, 75
summary, 71
type encoding limitations of, 72
store, summary, 74
untyped, handling of long and double values, data-flow analysis during class file verification, 131
int type
adding, iadd, 238
ANDing, bitwise, iand, 240
branch int comparison
if_icmp<cond>, 245
with zero, if<cond>, 247
converting
double to, d2i, 177
float to, f2i, 205
long to, l2i, 284
to byte, i2b, 232
to char, i2c, 233
to double, i2d, 234
to float, i2f, 235
to long, i2l, 236
to short, i2s, 237
dividing, idiv, 243
field descriptor specification, 91
loading from
arrays, iaload, 239
local variables, iload, 252
local variables, iload_<n>, 253
multiplying, imul, 254
negating, ineg, 255
ORing
bitwise, exclusive, ixor, 279
bitwise, inclusive, ior, 270
pushing constants, iconst_<i>, 242
remainder, irem, 271
shift left, arithmetic, ishl, 273
shift right
arithmetic, ishr, 274
logical, iushr, 278
storing into
arrays, iastore, 241
local variables, istore, 275
local variables, istore_<n>, 276
subtracting, isub, 277
value, return from method, ireturn, 272
integer
See also byte type; char type; int type; long type; short type
data types, underflow and overflow, not detected by Java Virtual Machine, 76
int type
boolean values represented as, 60
compilation of, Java Virtual Machine assembly language examples, 341
instruction set handling of, 72
term definition, 58
value range, 59
integral
types
components, 7, 58
values, 58
values, operators on, 8
interfaces, 30
See also ACC_INTERFACE modifier; arrays; class(es); interfaces array, (ClassFile structure)
constant pool entry resolution, 140
extends clause use, 31
fields, 31
finalization of, 52
implements clause use, 31
members, 31
methods
constant pool resolution of, 148
invocation instruction summary, 80
invoking, invokeinterface, 258
invoking, invokeinterface_quick, 403
method_info structure access flags, 104
modifiers, 31
term definition, 30
types, 9
as reference type, 61
implications for variables and expressions, 13
members of, 22
interfaces array
(ClassFile structure), 87
interfaces_count item
(ClassFile structure), 87
InternalError
as asynchronous exception cause, 37
as Java Virtual Machine error, 40
invokeinterface instruction, 258
constraints, static, 120
invokeinterface_quick instruction, 403
invokenonvirtual_quick instruction, 406
invokespecial instruction, 261
See also ACC_SUPER modifier
access flag use to select alternative semantics, 86
constraints
static, 120
structural, 122
instance initialization by, 69
in Java Virtual Machine assembly language examples
arrays, 358
invoking methods, 354
throwing exceptions, 362
working with class instances, 355
invokestatic instruction, 265
constraints, static, 120
in Java Virtual Machine assembly language examples, invoking methods, 353
invokestatic_quick instruction, 410
invokesuper_quick instruction, 408
invokevirtual instruction, 267
constraints, static, 120
in Java Virtual Machine assembly language examples
catching exceptions, 363, 364, 365
invokevirtual instruction (cont.)
compiling finally, 367, 368, 369
invoking methods, 352
synchronization, 370
throwing exceptions, 362, 363
working with class instances, 355
invokevirtual_quick instruction, 411
invokevirtual_quick_w instruction, 413
invokevirtualobject_quick instruction, 415
invoking
methods
class, invokestatic, 265
class, invokestatic_quick, 410
instance, invokespecial, 261
instance, invokevirtual, 267
instance, invokevirtual_quick, 411
instance, invokevirtual_quick_w, 413
instance, for java.lang.Object class, invokevirtualobject_quick, 415
instance initialization, invokenonvirtual_quick, 406
interface, invokeinterface, 258
interface, invokeinterface_quick, 403
private, invokenonvirtual_quick, 406
superclasses, invokesuper_quick, 408
ior instruction, 270
irem instruction, 271
ireturn instruction, 272
constraints, structural, 123
in Java Virtual Machine assembly language examples
arithmetic, 346
compiling switches, 359, 360, 361
invoking methods, 352, 353, 354
receiving arguments, 351
while loop, 350
ishl instruction, 273
ishr instruction, 274
istore instruction, 275
See also iload instruction
constraints, static, 121
istore_<n> instructions, 276
See also iload_<n> instructions
constraints, static, 121
in Java Virtual Machine assembly language examples
accessing the constant pool, 347
arrays, 357
constants and local variables in a for loop, 341, 345
while loop, 348
isub instruction, 277
in Java Virtual Machine assembly language examples, arithmetic, 346
items
class file items, 83
iushr instruction, 278
ixor instruction, 279
in Java Virtual Machine assembly language examples, arithmetic, 346

Contents | Prev | Next | Index

Java Virtual Machine Specification

Copyright © 1996, 1997 Sun Microsystems, Inc. All rights reserved
Please send any comments or corrections to jvm@java.sun.com