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