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

# 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 jvm@java.sun.com