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

# I

I character

meaning in field or method descriptor, 101

i2b instruction

definition, 254

i2c instruction

definition, 255

i2d instruction

definition, 256

i2f instruction

definition, 257

i2l instruction

definition, 258

i2s instruction

compilation examples, constants and local variables in a for loop, 369
definition, 259

iadd instruction

compilation examples

arithmetic, 369
constants and local variables in a for loop, 369
receiving arguments, 375

definition, 260

iaload instruction

compilation examples, arrays, 382
definition, 261

iand instruction

compilation examples, arithmetic, 369
definition, 262

iastore instruction

compilation examples, arrays, 382
definition, 263

iconst_<i> instructions

compilation examples

arithmetic, 369
arrays, 383
compiling switches, 384
constants and local variables in a for loop, 365, 369
operand stack operations, 386
while loop, 372, 374

definition, 264

identifiers

definition, 6
as value of CONSTANT_Utf8_info structure

referenced by name_index item (CONSTANT_NameAndType_info structure), 110
referenced by name_index item (field_info structure), 113
referenced by name_index item (method_info structure), 116

idiv instruction

definition, 265

IEEE 754 standard

bibliographic reference, 75
comparing

double conformance, dcmp<op>, 202
float conformance, fcmp<op>, 232

conformance

add double dadd, 198
add float, fadd, 228

dividing

double conformance, ddiv, 205
float conformance, fdiv, 235

floating-point

double bit layout, high_bytes and low_bytes items, CONSTANT_Double_info structure, 108
operation conformance to, 85

key differences between Java virtual machine and, 75
multiplying

double conformance, dmul, 209
float conformance, fmul, 239

remainder

drem not the same as, drem, 212
frem not the same as, frem, 242

subtracting

double conformance, dsub, 217
float conformance, fsub, 247

if<cond> instructions

compilation examples

constants and local variables in a for loop, 367
throwing exceptions, 387
while loop, 373, 374, 375

constraints, static, 134
definition, 269

if_acmp<cond> instructions

constraints, static, 134
definition, 266

if_icmp<cond> instructions

compilation examples

constants and local variables in a for loop, 365, 367, 369
while loop, 372

constraints, static, 134
definition, 267

ifnonnull instruction

constraints, static, 134
definition, 271

ifnull instruction

compilation examples, working with class instances, 379
constraints, static, 134
definition, 272

iinc instruction

compilation examples

constants and local variables in a for loop, 365, 366
while loop, 372

constraints, static, 136
definition, 273

IllegalAccessError

definition, 50
as linking error, 45
thrown by

invokeinterface, 282
multianewarray, 340
putfield, 349
putstatic, 351

thrown during

class or interface resolution, 167
field resolution, 167
method resolution, 168

IllegalMonitorStateException

definition, 44
thrown by

areturn, 182
athrow, 187
dreturn, 214
freturn, 244
ireturn, 296
lreturn, 327
monitorexit, 337
return, 353

iload instruction

See also istore instruction; wide instruction
constraints, static, 136
definition, 274

iload_<n> instructions

See also istore_<n> instructions
compilation examples

arithmetic, 370
arrays, 382
compiling switches, 384, 385
constants and local variables in a for loop, 365, 366, 369
receiving arguments, 375
throwing exceptions, 387
while loop, 372
working with class instances, 381

constraints, static, 136
definition, 275

impdep1 reserved opcode

definition, 172

impdep2 reserved opcode

definition, 172

implementation

attributes

optional, handling, 116
predefined, support requirements, 116

considerations

exception handling, 124
frames, extensions permitted, 75
heap, 68
Java virtual machine stack, 67
method area, 69
native method stacks, 70
operand stacks, 73
runtime constant pool, 70

constraint enforcement strategies, 171
constraints

Java virtual machine code, static, 133
Java virtual machine code, structural, 137

implications, opcode design and alignment, 80
Java virtual machine, strategies and requirements, 91
object representation, 75
optimization, alternative instruction use, 143
requirements and non-requirements, 61
Sun's JDK and Java 2 SDK

boolean arrays as byte arrays, 66
heap, 68
Java virtual machine stack, 67
Java virtual machine stack, size limit use, 68
line number - source code mapping issues, 130
method area, 69

imul instruction

definition, 276

IncompatibleClassChangeError

definition, 50
thrown by

getfield, 248
getstatic, 250
invokeinterface, 282
invokespecial, 286
invokestatic, 290
invokevirtual, 293
putfield, 349
putstatic, 351

thrown during

class or interface loading, 163
class or interface resolution, 164
interface method resolution, 169
method resolution, 168

increment

local variable by constant, iinc, 273

index item

(LocalVariableTable_attribute structure), 131

IndexOutOfBoundsException

definition, 44

ineg instruction

definition, 277

info array

(attribute_info generic structure), 117

<init> method

constant_pool reference to, 106
as instance initialization method name, 78
invocation of

static constraints, 135
structural constraints, 137

method_info structure access flags, 115
name_index item (method_info) reference, 116

initial class

definition, 158

initialization

See also <clinit> method; <init> method
(chapter), 155
class or interface, reasons for

getstatic, 170
initial class, 170
initialization of a subclass, 170
invokestatic, 170
new, 170
putstatic, 170
reflection, 170

definition, 51
detailed procedure description, 52
instance, data-flow analysis during class file verification, 146
instance, structural constraints on instructions, 136
method

class or interface (<clinit>), 78
instance (<init>), 78

overview, 48
static initializers, 33
when initiated, 51, 170

inner_class_access_flags item

(classes array of InnerClasses_attribute structure), 126

inner_class_info_index item

(classes array of InnerClasses_attribute structure), 126

inner_name_index item

(classes array of InnerClasses_attribute structure), 126

InnerClasses_attribute structure

(elements of attributes table of ClassFile structure), 125

instanceof instruction

definition, 278

instances

See also array
creating

new, 341

creation, 54

instruction summary, 88
situations that cause the, 54

definition, 12
determining if an object is a particular type, instanceof, 278
enter monitor for, monitorenter, 335
exiting monitor for, monitorexit, 337
field descriptor specifications, 101
getting values of fields from, getfield, 248
initialization

data-flow analysis during class file verification, 147
field_info structure access flags, 112
structural constraints on instructions, 137

instanceof instruction, constraints, static, 136
Java virtual machine support for, 62
manipulation, instruction summary, 88
methods, 33

accessing, structural constraints on instructions, 138
data-flow analysis during class file verification, 147
invoking, instruction summary, 89
invoking, invokespecial, 284
invoking, invokevirtual, 291
method_info structure access flags, 115

putting values of fields into, putfield, 348
reference type relationship to, 62
this object role in creation of, 55
uninitialized, restrictions, Pass 3 - bytecode verifier, 147
unreachable, finalization of, 57
variables, 13

accessing, structural constraints on instruction, 138
getfield, 248
putting fields into putfield, 348

InstantiationError

definition, 51
as linking error, 45
thrown by new, 341

instructions

alternative forms, optimization use of, 143
constraints, static, 134
Java virtual machine instruction set execution loop, 80

format, 61

load summary, 83
opcodes

data-flow analysis, 142
verification process, 143

operands, verification process, 143
set

arithmetic, summary, 84
notation for families of, 84
summary, 80
type encoding limitations of, 80

int type

adding, iadd, 260
ANDing, bitwise, iand, 262
branch int comparison

if_icmp<cond>, 267
with zero, if<cond>, 269

converting

double to, d2i, 196
float to, f2i, 226
to byte, i2b, 254
to char, i2c, 255
to double, i2d, 256
to float, i2f, 256, 257
to long, i2l, 258
to short, i2f, 259

definition, 62
dividing, idiv, 265
instruction set handling of, 81
loading from

arrays, iaload, 261
local variables, iload, 274
local variables, iload_<n>, 275

multiplying, imul, 276
negating, ineg, 277
ORing

bitwise, exclusive, ixor, 303
bitwise, inclusive, ior, 294

pushing constants, iconst_<i>, 264
remainder, irem, 295
returning from method invocation, ireturn, 296
shift left, arithmetic, ishl, 297
shift right

arithmetic, ishr, 298
logical, iushr, 302

storing into

arrays, iastore, 263
local variables, istore, 299
local variables, istore_<n>, 300

subtracting, isub, 301
value range, 63

integral

types

definition, 62
values, 63

interfaces

See also ACC_INTERFACE flag; array; class(es); interfaces array, `ClassFile` structure
creation, 158
definition, 35
derivation of symbolic references to at run time, 156
extends clause use, 36
fields, 36
implements clause use, 36
members, 36
methods

derivation of symbolic references to at run time, 156
invocation instruction summary, 89
invoking, invokeinterface, 280
method_info structure access flags, 114
resolution, 168

modifiers, 35
resolution, 166
types, 11

implications for variables and expressions, 15
as reference type, 66

interfaces array

(ClassFile structure), 97

interfaces_count item

(ClassFile structure), 97

intern method

String class, 6, 157

InternalError

as asynchronous exception cause, 43
as Java Virtual machine error, 45

invokeinterface instruction

constraints, static, 135
definition, 280

invokespecial instruction

See also ACC_SUPER modifier
access flag use to select alternative semantics, 96
compilation examples

arrays, 383
invoking methods, 378
throwing exceptions, 387
working with class instances, 379

constraints

static, 135
structural, 137

definition, 284
instance initialization by, 78

invokestatic instruction

compilation examples, invoking methods, 377
constraints, static, 135
definition, 288

invokevirtual instruction

compilation examples

catching exceptions, 388, 389, 390
compiling finally, 392, 393, 394
invoking methods, 376
throwing exceptions, 387, 388
working with class instances, 380

constraints, static, 135
definition, 291

invoking

methods

class, invokestatic, 288
instance, invokespecial, 284
instance, invokevirtual, 291
interface, invokeinterface, 280

ior instruction

definition, 294

irem instruction

definition, 295

ireturn instruction

compilation examples

arithmetic, 370
compiling switches, 384, 385
invoking methods, 376, 377, 378
receiving arguments, 375
while loop, 374

constraints, structural, 138
definition, 296

ishl instruction

definition, 297

ishr instruction

definition, 298

istore instruction

See also iload instruction
constraints, static, 136
definition, 299

istore_<n> instructions

See also iload_<n> instructions
compilation examples

accessing the runtime constant pool, 371
arrays, 382
constants and local variables in a for loop, 365, 369
while loop, 372

constraints, static, 136
definition, 300

isub instruction

compilation examples, arithmetic, 370
definition, 301

items

class file items, 93

iushr instruction

definition, 302

ixor instruction

compilation examples, arithmetic, 370
definition, 303

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