
xvi
15.17.1.1 String Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
15.17.1.2 Optimization of String Concatenation. . . . . . . . . . . .356
15.17.1.3 Examples of String Concatenation . . . . . . . . . . . . . . 356
15.17.2 Additive Operators (+ and -) for Numeric Types . . . . . . . . . . . .358
15.18 Shift Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
15.19 Relational Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
15.19.1 Numerical Comparison Operators <, <=, >, and >=. . . . . . . . . . .361
15.19.2 Type Comparison Operator instanceof . . . . . . . . . . . . . . . . . .361
15.20 Equality Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
15.20.1 Numerical Equality Operators == and != . . . . . . . . . . . . . . . . . .363
15.20.2 Boolean Equality Operators == and !=. . . . . . . . . . . . . . . . . . . .364
15.20.3 Reference Equality Operators == and != . . . . . . . . . . . . . . . . . .364
15.21 Bitwise and Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
15.21.1 Integer Bitwise Operators &, ^, and | . . . . . . . . . . . . . . . . . . . . .365
15.21.2 Boolean Logical Operators &, ^, and | . . . . . . . . . . . . . . . . . . . .365
15.22 Conditional-And Operator && . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
15.23 Conditional-Or Operator ||. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
15.24 Conditional Operator ?: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367
15.25 Assignment Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369
15.25.1 Simple Assignment Operator = . . . . . . . . . . . . . . . . . . . . . . . . . . 369
15.25.2 Compound Assignment Operators . . . . . . . . . . . . . . . . . . . . . . .374
15.26 Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .381
15.27 Constant Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
16 Definite Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
16.1 Definite Assignment and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
16.1.1 Boolean Constant Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 386
16.1.2 Boolean-valued Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . .386
16.1.3 The Boolean Operator && . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .386
16.1.4 The Boolean Operator || . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .387
16.1.5 The Boolean Operator ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .387
16.1.6 The Boolean Operator & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .387
16.1.7 The Boolean Operator | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .388
16.1.8 The Boolean Operator ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .388
16.1.9 The Boolean Operator == . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389
16.1.10 The Boolean Operator != . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389
16.1.11 The Boolean Operator ?: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
16.1.12 The Conditional Operator ?:. . . . . . . . . . . . . . . . . . . . . . . . . . .390
16.1.13 Boolean Assignment Expressions. . . . . . . . . . . . . . . . . . . . . . . .390
16.1.14 Other Assignment Expressions . . . . . . . . . . . . . . . . . . . . . . . . . .391
16.1.15 Operators ++ and -- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
16.1.16 Other Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .392
16.2 Definite Assignment and Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . .393
16.2.1 Empty Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .393
16.2.2 Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .393
16.2.3 Local Variable Declaration Statements . . . . . . . . . . . . . . . . . . . . 393
16.2.4 Labeled Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .394
16.2.5 Expression Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394