J. W. Rider
21 February 2005
Java Reserved Identifiers
A Java identifier is a sequence of Java letters and digits, the first of which must be a letter. Programmer-defined identifiers cannot have the same spelling as identifiers that are reserved. Reserved identifiers include keywords, two Boolean literals, and the null literal.
Identifier spelling is case-sensitive.The following character sequences are reserved and cannot be used as programmer-defined identifiers:
|
|
|
|
|
The keywords const and goto are reserved by Java, even though they are not currently used in Java. This may allow a Java compiler to produce better error messages if these C++ keywords incorrectly appear in Java programs.
P>The following table lists and annotates all of the Java reserved identifiers. Reserved identifiers cannot be used in any other way within Java programs. In particular, you cannot use any of these reserved identifiers as your own identifiers in Java programs.| Identifier |
Context |
Description |
| abstract |
class modifier |
abstract class MyAbstractClass { members; }For classes: The class cannot be instantiated directly; that is, you may not " new MyAbstractClass()". Subclasses of an abstract class must provide bodies in overridden methods to be capable of being instantiated.Abstract classes generally have at least one abstract method. However, this is not a requirement. Abstract classes may have a mix of both abstract and concrete methods, or they may have all concrete methods. |
| method modifier |
abstract void aProcedure();For methods: There is no body associated with the method, only a semicolon marks the end of the method declaration. Classes that contain abstract methods must themselves be abstract. However, abstract classes need not have any abstract methods. | |
| assert | run-time debugging check |
|
| boolean | primitive type |
boolean trueOrFalse;Boolean variables can only be assigned the values true or false. |
| break |
control statement (found in iteration or switch statements) |
Always ends the innermost control structure in which the break statement is embedded. Iteration statements do not test to see if they should execute another cycle.
|
|
Labeled break statements end all nested control structures out to the iteration or switch statement with the same label. | ||
| byte |
primitive type |
byte tensOfThings;Byte variables can be assigned 8-bit integer values between –128 and 127. |
| case |
switch statement clause |
case CASEVALUE: statements; break;Within a switch statement, execution is suspended until a case value that matches the switch expression is found. |
| catch | try statement clause (handles exceptions) |
try { statements; }catch ( MyException e) { statements; }The catch statement can only be used in conjunction with a try statement. When an exception is thrown in the try block of a try statement, program execution continues in a catch block which matches the exception thrown. Catch blocks handle any exceptions thrown by code within a try block. |
| char |
primitive type |
char aVowel;Char variables can be assigned 16-bit Unicode characters. |
| class | class declaration |
The class is the basic building module of Java. It creates a generic description (or template, or blueprint) of one are more objects, the instances of the class. The class body lists the members of the class: the fields (or variables, or attributes), the methods (or functions), or local class/interface declarations. |
| const |
unused |
Use final to indicate fields that are not changed after initialization. |
| continue |
statement (found in iteration statements) |
The continue statement returns to the beginning of an embedded loop, at which time the loop tests itself whether to execute the body again or exit. The unlabeled continue goes to the beginning of the innermost nested loop. The labeled continue goes to the beginning of the iteration statement with that label. |
| default |
switch statement clause |
default: statements;If none of the case clauses in a switch statement match the switch expression, execution of statements within the switch block begins at the "default case" or "default label". |
| do |
iteration statement |
do statements; while (test);Executes a sequence of statements while the while condition is true. The iterated statements are executed at least once. |
| double |
primitive type |
double astronomicalQuantity;Double variables can be assigned 64-bit double-precision floating-point values. The largest possible double value is 1.79769313486231570e+308. |
| else |
if statement clause |
if ( test) statement1;else statement2;The else keyword is used only in conjunction with an if statement. The statement or block that follows the else is executed when the if test evaluates to false. |
| enum | programmer-defined type |
|
| extends | class/interface declaration clause |
If a class does not explicitly extend a superclass, the class is taken to be a subclass of the class Object (as if you had written, " extends Object"). |
| false |
boolean literal |
boolean allAnimalsAreDogs = false; |
| final |
class modifier |
declares a class that can never be extended. |
| method modifier |
declares a method that can never be overridden in a subclass. | |
| field modifier |
declares a constant. | |
| finally |
try statement clause |
try { statements; }finally { statements; }The finally block is executed whether or not an exception was thrown in a try block. It is not possible to determine within the finally block whether or not an exception was thrown within the try block. |
| float |
primitive type |
float aFloat;Float variables can be assigned 32-bit single-precision IEEE floating point values. The largest possible float value is 3.40282347e+38f (note the "f"). |
| for |
iteration statement |
for ( initialize; test; update ) statement;Executes a statement (or block) repeatedly while a test condition is true. |
| goto |
unused |
Only break, continue, return and throw are permitted to disrupt structured flow. |
| if |
selection statement |
if ( test) statement;Creates an optional execution path. The statement or block is executed only if test evaluates to true . |
|
if ( test) statement1;else statement2; Creates an alternative execution path. Statement1 is executed if test evaluates to true. Otherwise, statement2 is executed. | ||
| implements |
class declaration clause |
If a class implements an interface, it guarantees to define all the methods specified in the interface. This is analogous to the class extending the interface and overriding its methods. |
|
A class may implement more than one interface, in which case the interfaces are separated by commas in the class declaration: | ||
| import |
statement |
Lets you access classes and interfaces that have already been created, especially the Java standard classes. |
| instanceof |
operator |
if (anObject instanceof MyClass) statement;Determines whether the left-hand argument is an instance of a named class or interface or an instance of a subclass of the named class/interface. Evaluates to true or false. |
| int |
primitive type |
int hundredsOfMillionsOfThings;Int variables may be assigned 32-bit integer values. The largest possible int value is 2147483647, about two billion. |
| interface |
interface declaration |
interface MyInterface { members; }A specification of the methods which a class must in order to implement the interface. |
| long |
primitive type |
long billionsOfBillionsOfThings;Long variables may be assigned 64-bit integer values. The largest possible long value is 9223372036854775807L (note the "L" suffix), about nine billion, billion. |
| native |
method modifier |
native void aProcedure();Identifies methods that have bodies implemented outside of a Java class. |
| new |
operator |
Creates a new instance of a class. |
|
Creates an instance of an anonymous class that is assignment compatible with the named class/interface reference variables. | ||
Allocates memory for an array. | ||
|
There is no free, delete nor destructor mechanism within the Java language. Objects become subject to garbage collection when they are no longer referenced anywhere. All instances of a class do have a predefined (but not reserved) method, finalizer(), that is called prior to garbage collection, but there is no mechanism for forcing destruction. | ||
| null |
reference literal |
MyClass variable=null; Null is the reference value that does not indicate an object. The null value is assignment compatible with all reference variables. |
| package |
statement |
package mypackage;Declares the classes defined within a Java source file as parts of a named package. Packages are used by other source files through the import statement. |
| private |
member scope modifier |
private int aField;Private members may only be referenced within the class in which they are declared. |
| protected |
member scope modifier |
protected void aProcedure();Protected members may be referenced within the class in which they are declared, classes in the same package, or subclasses. |
| public |
class/interface scope modifier |
Public classes and interfaces may be referenced outside the package in which they are declared. |
| member scope modifier |
Public members of public classes may be referenced outside the package in which the class is declared. | |
| return |
control statement |
Exits from a void method. This statement is optional in a void method. If not present, the void method still exits when it reaches the end of the method body. |
|
Exits a method that returns a value. | ||
| short |
primitive type |
short thousandsOfThings; Short variables may be assigned 16 bit integer values. |
| static |
member modifier |
Associates members with the class and not with the individual instances. Static variables are 'shared' between all the instances of a class (as opposed to 'instance variables', for which each instance has an independant value).
|
|
Static methods may not refer to instance variables (only to static variables), and may be invoked using the class name, rather than on an instance of the class. (" MyClass.aStaticProcedure()") |
||
| strictfp |
class/interface/member modifier (added in Java 2) |
strictfp double accountBalance;Ensures that floating point values are normalized during calculations rather than just when assigned to floating point variables. |
| super |
class reference |
Invokes the constructor of the parent class from the constructor of a subclass. Must be the first executable statement within a constructor. |
|
Invokes a method of the parent class that may have been overridden in a subclass. | ||
| switch |
selection statement |
switch( expression){ cases; // see case optional_default_case; // see default } Provides multiple entries into a sequence of statements. The switch expression (char or integer) is evaluated, and the statement following the case label that matches the value is executed. Subsequent statements are executed, even if they follow other case labels. The sequence of statements continues to be executed until break, continue or return is executed, or if an unhandled exception is thrown. If no case matches the expression value, statements following the default label are executed. |
| synchronized |
method modifier |
{ statements; } The synchronized methods of a class can only be executed by a single thread. Threads invoking a synchronized method in a class when another thread is executing a synchronized method will be suspended until the thread that acquired the "lock" on the class releases the lock. |
| statement |
statement ;A thread will wait until a lock is acquired on the reference before executing the statement. A lock can only be acquired for any given object by a single thread at a time. | |
| this |
reference variable |
aComponent.addListener(this); A predefined reference variable defined for all non-static methods in a class. It provides a reference to the object whose method was called.
|
| throw |
statement (exceptions) |
throw new Exception();Interrupts the current sequence of statements being executed, and all parent structures and methods out to the innermost try statement. |
| throws |
method header clause (exceptions) |
void aProcedure() throws Exception { statements; }Identifies a procedure that either throws an exception directly, or does not handle the exception when it calls another method that throws the exception. |
| transient |
field modifier |
transient int temporary;Ostensibly, transient identifies fields that are not "persistent" when the object is saved or "serialized". However, there is nothing in Java that takes advantage of this feature. |
| true |
boolean literal |
boolean allDogsAreAnimals = true; |
| try |
statement (exceptions) |
try { statements; }catch ( IOException e) { statements; }catch ( Exception e) { statements; }finally { statements; }Defines a section that could throw exceptions. The statements in the try block are executed in sequence. If an exception occurs, and the exception class matches the type of the catch variable, then the statements in the catch block are executed, and the exception is deemed "handled". Regardless of whether or not an exception occurs, and whether it is handled or not, the statements in the finally block are executed. |
| void |
method return type substitute |
void aProcedure() { statements; }Identifies a method that does not return a value. |
| volatile |
field modifier (threads) |
volatile int threadFlag;Identifies fields that must be reevaluated at every reference. Most programmers prefer just to use synchronized. |
| while |
iteration statement |
while ( test) statement;Executes a statement or block repeatedly until a test condition is true. If the test condition evaluates to false initially, the statement is not executed. |