C
- C character
- field descriptor meaning, 91
- caching
- ACC_VOLATILE modifier, field_info structure prevention of, 102
- caller
- term definition, 36
- caload instruction, 172
- casting
- See also numeric
- checkcast instruction, constraints, static, 120
- checking types
- checkcast, 174
- checkcast_quick, 393
- errors
- AbstractMethodError, checkcast, 143
- ClassFormatError, checkcast, 142
- ExceptionInInitializerError, checkcast, 143
- IllegalAccessError, checkcast, 143, 146
- NoClassDefFoundError, checkcast, 142
- VerifyError, checkcast, 142
- exceptions
- ClassCastException, checkcast, 175
- ClassCastException, checkcast_quick, 393
- invocation conversion, context, 14
- not permitted between, boolean types and other types, 9
- castore instruction, 173
- catch clause(s)
- See also exceptions
- exception handling role, 36, 69
- Java Virtual Machine characteristics, 70
- ordering of, 70
- try statement, exception handler parameter variables created by, 11
- catch_type item
- (Code_attribute structure), 112
- "changed" bit
- data-flow analysis handling, Pass 3 - bytecode verifier, 129
- char type
- converting int to, i2c, 233
- field descriptor specification, 91
- instruction set handling of, 72
- arithmetic not directly supported, 75
- loading from arrays, caload, 172
- storing into arrays, castore, 173
- term definition, 58
- value range, 59
- [ character
- field descriptor meaning, 91
- ( character
- method descriptor meaning, 91
- ) character
- method descriptor meaning, 91
- checkcast instruction, 174
- See also instanceof instruction
- constraints, static, 120
- checkcast_quick instruction, 393
- checking
- types
- checkcast, 174
- checkcast_quick, 393
- instanceof, 256
- instanceof_quick, 401
- class(es)
- See also arrays; ClassFile structure; fields; interfaces; methods; subclasses; superclasses
- Class object, initialization role, 47
- ClassCastException, 38
- classFinalize method, invoking during class finalization, 52
- ClassLoader
- API contract between Java Virtual Machine and, possible future changes, 144
- loading performed by, 43
- <clinit> special method, as class or interface initialization method name, 69
- constant pool entry resolution, 140
- creation and manipulation, instruction summary, 79
- declaration, term definition, 24
- errors
- ClassFormatError, as loading process error, 39
- ClassFormatError, meaning of, 43
- ClassFormatError, constant pool resolution generation of, 142
- NoClassDefFoundError, 48
- final, term definition, 24
- finalization of, 52
- get static fields from
- getstatic, 228
- getstatic_quick, 399
- getstatic2_quick, 400
- initial, specifying to Java Virtual Machine, 41
- initialization, process, unrecoverable runtime exceptions associated with, 39
- instances
- creation expression, 9
- uninitialized, structural constraints on instructions, 122
- loader
- constant pool resolution of classes and interfaces loaded by, algorithm, 144
- constant pool resolution of classes and interfaces not loaded by, algorithm, 141
- members of, 25
- modifiers, term definition, 24
- names, name_index item (CONSTANT_Class_info structure) as reference to, 93
- preparation process, unrecoverable runtime exceptions associated with, 39
- put into static fields
- putstatic, 327
- putstatic_quick, 427
- putstatic2_quick, 428
- static methods
- invocation instruction summary, 81
- invoking, invokestatic, 265
- invoking, invokestatic_quick, 410
- term definition, 24
- types, 9
- as reference type, 61
- compared with, 13
- members of, 21
- variable, as kind of variable, 11
- verification process, unrecoverable runtime exceptions associated with, 39
- class_index item
- (CONSTANT_Fieldref_info structure), 95
- (CONSTANT_InterfaceMethodref_info structure), 95
- (CONSTANT_Methodref_info structure), 95
- ClassCastException, 38
- casting conversion cause of, 19
- checkcast, 175
- checkcast_quick, 393
- narrowing reference conversion cause of, 17
- ClassCircularityError, 39, 43
- anewarray, 162
- checkcast, 175
- getfield, 226
- getstatic, 228
- instanceof, 257
- invokespecial, 263
- invokestatic, 266
- invokevirtual, 268
- multianewarray, 316
- new, 318
- putfield, 325
- putstatic, 327
- ClassFile structure
- See also ClassFile substructures:
- access_flags item
- See also general concepts: access control; security
- attributes_count item
- attributes table
- See also general concepts: data types
- constant_pool_count item;
- constant_pool table;
- See also general concepts: constants; data types
- field_info structure
- fields_count item
- fields table
- See also general concepts: constants; data types; fields; methods; variables
- interfaces array
- See also general concepts: class(es); inheritance; interfaces; superclasses; subclasses
- interfaces_count item
- magic item
- major_version item
- method_info structure
- methods_count item
- methods table
- See also general concepts: methods; access control; threads; synchronization
- minor_version item
- super_class item
- See also general concepts: class(es); inheritance; interfaces; superclasses; subclasses
- this_class item
- See also general concept: class(es)
- End of See also cross references
- CONSTANT_Class_info structure representation, 94
- constant_pool table, Java Virtual Machine representation, 64
- data storage order and types, methods that can read, 83
- data types, methods that can read, 83
- field_info structure access flags, 102
- format
- ability to read as Java Virtual Machine implementation requirement, 57
- as overview, 70
- (chapter), 83
- integrity verification, 125
- initialization methods, field_info structure access flags ignored, 104
- method_info structure access flags, 104
- syntax and item descriptions, 84
- verification, 124
- compiler and language independence, 125
- operand stack manipulation constraints enforced during, 67
- procedures, 125
- ClassFormatError, 43
- anewarray, 162
- checkcast, 175
- getfield, 226
- getstatic, 228
- instanceof, 257
- invokespecial, 263
- invokestatic, 266
- invokevirtual, 268
- multianewarray, 316
- new, 318
- putfield, 325
- putstatic, 327
- <clinit> special method
- as class or interface initialization method name, 69
- constant_pool table, reference to, 95
- invocation of, static constraints, 120
- method_info structure access flags ignored, 104
- name_index item (method_info structure) reference, 105
- code
- blocks, synchronization, instruction summary, 81
- code array, data flow analysis, 126
- Code_attribute structure
- constraints on, structural, 121
- support required for, 107
- code array
- (Code_attribute structure), size and location, 111
- (method_info structure)
- constraints, static, 118
- constraints, structural, 121
- Code_attribute structure
- (method_info structure), 110
- code_length item
- (Code_attribute structure), 111
- colon (:)
- descriptor grammar notation use, 90
- comparing
- double
- dcmpg, 183
- dcmpl, 183
- float
- fcmpg, 211
- fcmpl, 211
- int
- if_icmp<cond>, 245
- with zero, if<cond>, 247
- long, lcmp, 289
- reference
- if_acmp<cond>, 244
- with null, ifnull, ifnonnull, 249
- comparisons
- numerical
- floating-point positive and negative zero, 59
- implications of unordered NaN values, 60
- compilation
- code, Java Virtual Machine assembly language examples, format, 340
- for the Java Virtual Machine, (chapter), 339
- types, term definition, 10
- completion
- abnormal, term definition, 68
- normal, term definition, 68
- concurrency
- See also threads
- conditional
- See also control flow
- branch, instruction summary, 80
- operator (?:), boolean expressions use with, 9
- CONSTANT_Class_info structure
- class names referenced from, 89
- components and meaning, 93
- super_class item, as ClassFile structure reference to a, 87
- this_class item, as ClassFile structure reference to a, 87
- CONSTANT_Class tag
- (CONSTANT_Class_info structure), 93
- CONSTANT_Double_info structure
- (constant_pool table), 97
- CONSTANT_Double tag
- (CONSTANT_Double_info structure), 98
- CONSTANT_Fieldref_info structure
- (constant_pool table), 94, 95
- CONSTANT_Fieldref tag
- (CONSTANT_Fieldref_info structure), 95
- CONSTANT_Float_info structure
- (constant_pool table), 96
- CONSTANT_Float tag
- (CONSTANT_Float_info structure), 96
- CONSTANT_Integer_info structure
- (constant_pool table), 96
- CONSTANT_Integer tag
- (CONSTANT_Integer_info structure), 96
- CONSTANT_InterfaceMethodref_info structure
- (constant_pool table), 94
- CONSTANT_InterfaceMethodref tag
- (CONSTANT_InterfaceMethodref_info structure), 95
- CONSTANT_Long_info structure
- (constant_pool table), 97
- CONSTANT_Long tag
- (CONSTANT_Long_info structure), 98
- CONSTANT_Methodref_info structure
- (constant_pool table), syntax and item descriptions, 94
- CONSTANT_Methodref tag
- (CONSTANT_Methodref_info structure), 95
- CONSTANT_NameAndType_info structure
- class names referenced from, 89
- (constant_pool table), 99
- CONSTANT_NameAndType tag
- (CONSTANT_NameAndType_info structure), 99
- constant_pool_count item
- (ClassFile structure), 85
- constant_pool table
- (ClassFile structure)
- detailed description, 85
- overview, 92
- constantvalue_index item values (table), 110
- tag values table, 93
- CONSTANT_String_info structure
- (constant_pool table), 96
- CONSTANT_String tag
- (CONSTANT_String_info structure), 96
- CONSTANT_Utf8_info structure
- attribute_name_index item
- (Code_attribute structure), 111
- (ConstantValue_attribute structure), 109
- (Exceptions_attribute structure), 114
- (LineNumberTable_attribute structure), 115
- (LocalVariableTable_attribute structure), 117
- (SourceFile_attribute structure), 107, 108
- class names represented as, 89
- (constant_pool table), 100
- (name_index item), (CONSTANT_Class_info structure) as reference to a, 93
- (string_index item), (CONSTANT_String_info structure) as reference to, 96
- CONSTANT_Utf8 tag
- (CONSTANT_Utf8_info structure), 101
- constants
- See also constant_pool table; literals; variables
- attribute type values (table), 110
- compilation of, Java Virtual Machine assembly language examples, 341
- CONSTANT_Class_info structure, constant pool resolution of, 140
- CONSTANT_Double_info structure
- components and meaning, 98
- constant pool resolution of, 149
- CONSTANT_Fieldref_info structure, constant pool resolution of, 147
- CONSTANT_Float_info structure, constant pool resolution of, 149
- CONSTANT_Integer_info structure, constant pool resolution of, 149
- CONSTANT_InterfaceMethodref_info structure, constant pool resolution of, 147, 148
- CONSTANT_Long_info structure
- components and meaning, 98
- constant pool resolution of, 149
- CONSTANT_Methodref_info structure, constant pool resolution of, 147
- CONSTANT_NameAndType_info structure, constant pool resolution of, 149
- constant pool, 64
- frame reference, dynamic linking supported by, 67
- resolution, (chapter), 139
- size limitation, 136
- static constraint checking, 126
- CONSTANT_String_info structure, constant pool resolution of, 148
- CONSTANT_Utf8_info structure
- bibliographic reference, 101
- constant pool resolution of, 149
- CONSTANT_String_info reference, 148
- descriptor_index item, CONSTANT_NameAndType_info reference, 100
- name_index item, CONSTANT_NameAndType_info reference, 100
- name_index item, field_info reference, 103
- ConstantValue_attribute structure
- field_info structure value, 103
- support required for, 107
- fields, 31
- as interface members, 30
- final, 26
- floating-point
- double CONSTANT_Double_info structure representation, 97
- float CONSTANT_Float_info structure representation, 97
- increment local variable by, iinc, 251
- integer
- int CONSTANT_Integer_info structure representation, 97
- long CONSTANT_Long_info structure representation, 97
- load and store instructions, summary, 74
- pushing
- double, dconst_<d>, 184
- float, fconst_<f>, 212
- int, iconst_<i>, 242
- ldc, 291
- ldc_quick, 417
- long, lconst_<l>, 290
- wide index, ldc_w, 292
- wide index, ldc_w_quick, 418
- ConstantValue_attribute structure
- (field_info structure), 103, 109
- constantvalue_index item
- (ConstantValue_attribute structure), 109
- constraints
- enforcement of, by class file verifier, 151
- Java Virtual Machine, component limits, 136
- Java Virtual Machine code
- constraints (cont.)
- static, 118
- structural, specification of, 121
- structural, theorem prover use in checking, 124
- meaning of the term `must', in instruction descriptions, 151
- operand stack manipulation, 67
- constructors
- default, 30
- instance creation procedures, 50
- as instance initialization method, 69
- as not members of a class, 25
- parameters, as kind of variable, 11
- term definition, 29
- context
- switching, frame use for, 66
- control flow
- See also threads
- branch on reference comparison, if_acmp<cond>, 244
- branch on int comparison, if_icmp<cond>, 245
- branch on int comparison with zero, if<cond>, 247
- branch on reference comparison, with null, ifnull, ifnonnull, 249
- compilation of constructs
- Java Virtual Machine assembly language examples, for keyword, 341
- virtual machine assembly language examples, while keyword, 348
- instruction summary, 80
- instructions, code verification, Pass 3 - bytecode verifier, 128
- unconditional goto
- goto, 230
- wide index, goto_w, 231
- conversions
- See also numeric; primitive types;
- assignment, 17
- bytes item, CONSTANT_Float_info structure, algorithm, 97
- casting, term definition, 19
- contexts, 14
- method invocation, term definition, 18
- narrowing
- numeric, support for, 77
- numeric, impact on precision, 78
- reference, term definition, 15
- narrowing primitive
- double to float, d2f, 176
- double to int, d2i, 177
- double to long, d2l, 178
- float to int, f2i, 205
- float to long, f2l, 206
- int to byte, i2b, 232
- int to char, i2c, 233
- int to short, i2s, 237
- long to int, l2i, 284
- support for, 77
- term definition, 16
- numeric promotion
- binary, term definition, 19
- unary, term definition, 19
- types, 14
- instructions, 77
- widening
- numeric, impact on precision, 77
- reference, term definition, 16
- widening primitive
- float to double, f2d, 204
- int to double, i2d, 234
- int to float, i2f, 235
- int to long, i2l, 236
- long to double, l2d, 282
- long to float, l2f, 283
- support for, 77
- term definition, 16
- cp_info structure
- (generic form of items in the constant_pool table), 92
- cp_info tags values (table), 93
- creating
- arrays
- multidimensional, multianewarray, 316
- multidimensional, multianewarray_quick, 421
- primitive type, newarray, 320
- reference type, anewarray, 162
- reference type, anewarray_quick, 392
- class instances
- instruction summary, 79
- new, 318
- new_quick, 422
- threads, 386
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