Contents | Prev | Next | IndexThe 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

C

C character
meaning in field or method descriptor, 101
caload instruction
definition, 191
casting
See also numeric
checkcast, 193
checkcast instruction, constraints, static, 136
exceptions, ClassCastException, checkcast, 194
invocation conversion, context, 16
not permitted between boolean types and other types, 11
castore instruction
definition, 192
catch clause(s)
See also exceptions
exception handling role, 41, 78
ordering of, 79
try statement, exception handler parameter variables created by, 14
catch_type item
(Code_attribute structure), 122
char type
arithmetic not directly supported, 84
converting int to, i2c, 255
definition, 62
instruction set handling of, 81
loading from arrays, caload, 191
storing into arrays, castore, 192
value range, 63
checkcast instruction
See also instanceof instruction
constraints, static, 136
definition, 193
checking
types
checkcast, 193
instanceof, 278
class file format
See also ClassFile structure
byte storage order, 93
(chapter), 93
data, methods that can read, 93
integrity verification, 140
class loader
bootstrap, 158
ClassLoader
<clinit> method, as class or interface initialization method, 78, 155
loading performed by, 48
defining, 159
delegating to another, 159
initiating, 159
loading
by a user-defined, 160
by the bootstrap, 160
loading constraints, 162
user-defined, 158
class(es)
See also array; class file format; class loader; ClassFile structure; interfaces
Class object, initialization role, 52
ClassCastException, 44
creation, 158
declaration, 28
derivation of symbolic references to at run time, 156
final, 28
finalization of, 57
get static fields from, getstatic, 250
initial, specifying to Java virtual machine, 46, 158
initialization, process, unrecoverable runtime exceptions associated with, 44
instances
creation expression, 12
uninitialized, structural constraints, 135
libraries, Java virtual machine support for, 91
members of, 29
modifiers, 28
names, name_index item
(CONSTANT_Class_info structure) as reference to, 104
put into static fields, putstatic, 350
resolution, 166
static methods
invocation instruction summary, 89
invoking, invokestatic, 288
types, 11
compared with, 15
members of, 25
as reference type, 66
verification process, unrecoverable runtime exceptions associated with, 45
class_index item
(CONSTANT_Fieldref_info structure), 106
(CONSTANT_InterfaceMethodref_info structure), 106
(CONSTANT_Methodref_info structure), 106
ClassCastException
casting conversion as cause of, 23
definition, 44
narrowing reference conversion as cause of, 19
thrown by checkcast, 194
ClassCircularityError
definition, 49
as linking error, 45
thrown during
class or interface loading, 164
class or interface resolution, 164
classes array
(InnerClasses_attribute_info structure), 125
ClassFile structure
See also ClassFile substructures:
access_flags item
attributes table
attributes_count item
constant_pool table
constant_pool_count item
field_info structure
fields table
fields_count item
interfaces array
interfaces_count item
magic item
major_version item
method_info structure
methods table
methods_count item
minor_version item
super_class item
this_class item
constant_pool table, Java virtual machine representation, 70
format
ability to read as Java virtual machine implementation requirement, 61
as overview, 61
integrity verification, 140
syntax and item descriptions, 93
ClassFormatError
definition, 49
as linking error, 45
<clinit> method
as class or interface initialization method name, 78
constant_pool table, reference to, 105
invocation of, static constraints, 135
name_index item (method_info structure) reference, 116
code
See also code array; Code_attribute structure
blocks, synchronization, instruction summary, 90
code array
(Code_attribute structure)
constraints, static, 133
constraints, structural, 137
size and location, 120
data-flow analysis, 141
Code_attribute structure
(method_info structure), 120
code_length item
(Code_attribute structure), 121
comparisons
double, dcmp<op>, 202
float, fcmp<op>, 232
int
if_icmp<cond>, 267
with zero, if<cond>, 269
long, lcmp, 313
numerical
floating-point positive and negative zero, 65
implications of unordered NaN values, 65
reference
if_acmp<cond>, 266
with null, ifnull, 271, 272
compilation
for the Java virtual machine, (chapter), 363
Java virtual machine assembly language, format, 364
completion
method invocation
abrupt, 74
normal, 74
computational type
definition, 82
conditional
See also control flow
branch, instruction summary, 89
CONSTANT_Class_info structure
class names referenced from, 99
(constant_pool table), items and meaning, 103
derivation of symbolic reference from at run time, 156
super_class item, as ClassFile structure reference to a, 97
this_class item, as ClassFile structure reference to a, 97
CONSTANT_Class tag
(CONSTANT_class_info structure), 104
CONSTANT_Double_info structure
(constant_pool table), items and meaning, 108
derivation of constant value from at run time, 157
CONSTANT_Double tag
(CONSTANT_Double_info structure), 108
CONSTANT_Fieldref_info structure
(constant_pool table), items and meaning, 105
derivation of symbolic reference from at run time, 156
CONSTANT_Fieldref tag
(CONSTANT_Fieldref_info structure), 105
CONSTANT_Float_info structure
(constant_pool table), items and meaning, 107
derivation of constant value at run time, 157
CONSTANT_Float tag
(CONSTANT_float_info structure), 107
CONSTANT_Integer_info structure
(constant_pool table), items and meaning, 107
derivation of constant values at run time, 157
CONSTANT_Integer tag
(CONSTANT_Integer_info structure), 107
CONSTANT_InterfaceMethodref_info structure
(constant_pool table), items and meaning, 105
derivation of symbolic reference from at run time, 156
CONSTANT_InterfaceMethodref tag
(CONSTANT_InterfaceMethodref_info structure), 105
CONSTANT_Long_info structure
(constant_pool table), items and meaning, 109
derivation of constant value at run time, 157
CONSTANT_Long tag
(CONSTANT_Long_info structure), 108
CONSTANT_Methodref_info structure
(constant_pool table), items and meaning, 105
derivation of symbolic reference from at run time, 156
CONSTANT_Methodref tag
(CONSTANT_Methodref_info structure), 105
CONSTANT_NameAndType_info structure
class names referenced from, 99
(constant_pool table), items and meaning, 110
derivation of symbolic reference from at run time, 157
indirect use of at run time, 157
CONSTANT_NameAndType tag
(CONSTANT_NameAndType_info structure), 110
constant_pool_count item
(ClassFile structure), 95
constant_pool table
(ClassFile structure), 95, 103
constantvalue_index item values (table), 119
derivation of symbolic references from at run time, 155
tag values (table), 103
CONSTANT_String_info structure
(constant_pool table), items and meaning, 106
derivation of symbolic reference from at run time, 157
CONSTANT_String tag
(CONSTANT_String_info structure), 106
CONSTANT_Utf8_info structure
attribute_name_index item
(Code_attribute structure), 121
(ConstantValue_attribute structure), 119
(Exceptions_attribute structure), 124
(InnerClasses_attribute structure), 125
(LineNumberTable_attribute structure), 130
(LocalVariableTable_attribute structure), 131
(SourceFile_attribute structure), 117, 128
(Deprecated_attribute structure), 133
(Synthetic_attribute structure), 128
class names represented as, 99
(constant_pool table), items and meaning, 112
indirect use of at run time, 158
(name_index item)
(CONSTANT_Class_info structure) as reference to a, 104
(string_index item)
(CONSTANT_String_info structure) as a reference to, 107
CONSTANT_Utf8 tag
(CONSTANT_Utf8_info structure), 111
constants
See also constant_pool table; literals; variables
attribute type values (table), 119
constant pool, class file format
size limitation, 152
static constraint checking, 140
CONSTANT_Class_info structure
derivation of symbolic reference from at run time, 156
items and meaning, 104
CONSTANT_Double_info structure
derivation of constant value from at run time, 157
items and meaning, 108
CONSTANT_Fieldref_info structure
derivation of symbolic reference from at run time, 156
items and meaning, 106
CONSTANT_Float_info structure
derivation of constant value from at run time, 157
items and meaning, 107
CONSTANT_Integer_info structure
derivation of constant value from at run time, 157
items and meaning, 107
CONSTANT_InterfaceMethodref_info structure
derivation of symbolic reference from at run time, 156
items and meaning, 106
CONSTANT_Long_info structure
derivation of constant value from at run time, 157
items and meaning, 109
CONSTANT_Methodref_info structure
derivation of symbolic reference from at run time, 156
items and meaning, 106
CONSTANT_NameAndType_info structure
indirect use of at run time, 157
items and meaning, 110
CONSTANT_String_info structure
derivation of symbolic reference from at run time, 157
items and meaning, 106
CONSTANT_Utf8_info structure
descriptor_index item, CONSTANT_NameAndType_info reference, 110
indirect use of at run time, 158
items and meaning, 110
ConstantValue_attribute structure
field_info structure value, 114
support required for, 118
fields, 36
as interface members, 35
final, 30
floating-point
double, CONSTANT_Double_info structure representation, 108
float, CONSTANT_Float_info structure representation, 107
increment local variable by, iinc, 273
integer
int, CONSTANT_Integer_info structure representation, 107
long, CONSTANT_Long_info structure representation, 108
load and store instructions, summary, 83
pushing
double, dconst_<d>, 204
float, fconst_<f>, 234
int, iconst_<i>, 264
ldc, 315
long, lconst_<l>, 314
wide index, ldc_w, 316
runtime constant pool, 70
derivation of, 155
frame reference, dynamic linking supported by, 71, 74
ConstantValue_attribute structure
(attributes table of field_info structure), 114
(field_info structure), 119
constantvalue_index structure
(ConstantValue_attribute structure), 119
constraints
class loading, 162
enforcement of, by class file verifier, 171
Java virtual machine code
static, specification of, 133
structural, specification of, 137
operand stack manipulation, 73
constructors
default, 34
definition, 34
instance creation procedures, 55
as instance initialization method, 78
not members of a class, 29
control flow
See also threads
branch on
int comparison with zero, if<cond>, 269
int comparison, if_icmp<cond>, 267
reference comparison with null, ifnonnull, 271
reference comparison with null, ifnull, 272
reference comparison, if_acmp<cond>, 266
compilation examples, for keyword, 366
compilation of, while keyword, 372
instruction summary, 88
instructions, code verification, Pass 3 - bytecode verifier, 142
unconditional goto
goto, 252
wide index, goto_w, 253
conversions
See also numeric; primitive types
assignment, 21
bytes item, CONSTANT_Float_info structure, algorithm, 107
casting, 23
contexts, 16
method invocation, 22
narrowing primitive
definition, 18
double to float, d2f, 195
double to int, d2i, 196
double to long, d2l, 197
float to int, f2i, 226
float to long, f2l, 227
impact on precision, 87
int to byte, i2b, 254
int to char, i2c, 255
int to short, i2s, 259
long to int, l2i, 308
support for, 86
narrowing reference, 19
numeric promotion
binary, 23
unary, 23
types, 17
instructions, 86
value set, 77
widening primitive
definition, 17
float to double, f2d, 225
impact on numeric precision, 86
int to double, i2d, 256
int to float, i2f, 257
int to long, i2l, 258
long to double, l2d, 306
long to float, l2f, 307
support for, 86
widening reference, 19
cp_info structure
(generic form of items in the constant_pool table), 103
tag values (table), 101, 103
creating
array classes, 158, 161
arrays
multidimensional, multianewarray, 339
primitive type, newarray, 343
reference type, anewarray, 181
class instances
instruction summary, 88
new, 341
classes and interfaces, 158
current
class, 72
frame, 71
method, 71

Contents | Prev | Next | Index

The JavaTM Virtual Machine Specification
Copyright © 1999 Sun Microsystems, Inc. All rights reserved
Please send any comments or corrections to [email protected]