Contents | Prev | Next | IndexThe JavaTM Virtual Machine Specification


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