by Laura Lemay
This appendix contains a summary or quick reference for the Java language, as described in this book.
Language keywords and symbols are shown in a monospace font. Arguments and other parts to be substituted are in italic monospace.
Optional parts are indicated by brackets (except in the array syntax section). If there are several options that are mutually exclusive, they are shown separated by pipes ([|]) like this:
[ public | private | protected ] type varname
The following words are reserved for use by the Java language itself (some of them are reserved but not currently used). You cannot use these words to refer to classes, methods, or variable names:
/* this is a multiline comment */
// this is a single-line comment
/** Javadoc comment */
number |
Type int |
number[l | L] |
Type long |
0xhex |
Hex integer |
0Xhex |
Hex integer |
0octal |
Octal integer |
[ number ].number |
Type double |
number[ f | f] |
Type float |
number[ d | D] |
Type double |
[ + | - ] number |
Signed |
numberenumber |
Exponent |
numberEnumber |
Exponent |
'character' |
Single character |
"characters" |
String |
"" |
Empty string |
\b |
Backspace |
\t |
Tab |
\n |
Line feed |
\f |
Form feed |
\r |
Carriage return |
\" |
Double quote |
\' |
Single quote |
\\ |
Backslash |
\uNNNN |
Unicode escape (NNNN is hex) |
true |
Boolean |
|
|
[ byte | short | int | long ] varname |
Integers (pick one type) |
[ float | double ] varname |
Floats (pick one type) |
char varname |
Characters |
boolean varname |
Boolean |
classname varname |
Class types |
interfacename varname |
Interface types |
|
|
The following options are available only for class and instance variables. Any of these options can be used with a variable declaration:
[ static ] variableDeclaration |
Class variable |
[ final ] variableDeclaration |
Constants |
[ public | private | protected ] variableDeclaration |
Access control |
[volatile] varname |
Modified asynchronously |
[transient] varname |
Not persistent (not yet implemented) |
variable = value |
Assignment |
variable++ |
Postfix Increment |
++variable |
Prefix Increment |
variable |
Postfix Decrement |
variable |
Prefix Decrement |
variable += value |
Add and assign |
variable = value |
Subtract and assign |
variable /= value |
Multiply and assign |
variable = value |
Divide and assign |
variable %= value |
Modulus and assign |
variable &= value |
AND and assign |
variable |= value |
OR and assign |
variable ^= value |
XOR and assign |
variable <<= value |
Left-shift and assign |
variable >>= value |
Right-shift and assign |
|
|
arg + arg |
Addition |
arg arg |
Subtraction |
arg * arg |
Multiplication |
arg / arg |
Division |
arg % arg |
Modulus |
arg < arg |
Less than |
arg > arg |
Greater than |
arg <= arg |
Less than or equal to |
arg >= arg |
Greater than or equal to |
arg == arg |
Equal |
arg != arg |
Not equal |
arg && arg |
Logical AND |
arg || arg |
Logical OR |
! arg |
Logical NOT |
arg & arg |
AND |
arg | arg |
OR |
arg ^ arg |
XOR |
arg << arg |
Left-shift |
arg >> arg |
Right-shift |
arg >>> arg |
Zero-fill right-shift |
~ arg |
Complement |
(type)thing |
Casting |
arg instanceof class |
Instance of |
|
|
new class() |
Create new instance |
new class(arg,arg,arg...) |
New instance with parameters |
object.variable |
Instance variable |
object.classvar |
Class variable |
Class.classvar |
Class variable |
object.method() |
Instance method (no args) |
object.method(arg,arg,arg...) |
Instance method |
object.classmethod() |
Class method (no args) |
object.classmethod(arg,arg,arg...) |
Class method |
Class.classmethod() |
Class method (no args) |
|
|
type varname[] |
Array variable |
type[] varname |
Array variable |
new type[numElements] |
New array object |
array[index] |
Element access |
|
|
if ( test) block |
Conditional |
<tb rule>if ( test ) block | |
<tb rule>else block |
Conditional with else |
switch (test) { |
switch (only with integer or char types) |
case value : statements | |
case value : statements | |
... | |
default : statement | |
<tb rule>} | |
<tb rule>for (initializer; |
for loop |
test; change ) block | |
<tb rule>while ( test ) block |
while loop |
do block |
do loop |
<tb rule>while (test) | |
<tb rule>break [ label ] |
break from loop or switch |
<tb rule>continue [ label ] |
continue loops |
|
|
|
|
Any of the following optional modifiers can be added to the class definition:
[ final ] class classname block |
Cannot be subclassed |
[ abstract ] class classname block |
Cannot be instantiated |
[ public ] class classname block |
Accessible outside package |
class classname [ extends Superclass ] block |
Define superclass |
|
|
The basic method looks like this, where returnType is a type name, a class name, or void.
returnType methodName() block |
Basic method |
|
|
Method parameters look like this:
Method variations can include any of the following optional keywords:
[ abstract ] returnType methodName() block |
Abstract method |
[ static ] returnType methodName() block |
Class method |
[ native ] returnType methodName() block |
Native method |
[ final ] returnType methodName() block |
final method |
[ synchronized ] returnType methodName() block |
Thread lock before executing |
|
|
|
classname() block |
basic constructor |
classname(parameter, parameter, parameter...) block |
constructor with parameters |
|
|
In the method/constructor body you can use these references and methods:
this |
Refers to current object |
super |
Refers to superclass |
super.methodName() |
Call a superclass's method |
this(...) |
Calls class's constructor |
super(...) |
Calls superclass's constructor |
|
|
import package.className |
Imports specific class name |
import package.* |
Imports all public classes in package |
package packagename |
Classes in this file belong |
to this package | |
interface interfaceName [ extends anotherInterface ] block | |
[ public ] interface interfaceName block | |
|
synchronized ( object ) block |
Waits for lock on object |
try block |
Guarded statements |
catch ( exception ) block |
Executed if exception is thrown |
[ finally block ] |
Cleanup code |
try block |
Same as previous example (can |
[ catch ( exception ) block ] |
use optional catch or finally, |
|
|
abstract
boolean
break
byte
case
catch
char
class
const
continue
do
double
else
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
super
switch
synchronized
this
throw
throws
try
void
volatile
while