
In the Java programming language, a keyword is any one of 68 reserved words[1] that have a predefined meaning in the language. Because of this, programmers cannot use keywords in some contexts, such as names for variables, methods, classes, or as any other identifier.[2] Of these 68 keywords, 17 of them are only contextually reserved, and can sometimes be used as an identifier, unlike standard reserved words. Due to their special functions in the language, most integrated development environments for Java use syntax highlighting to display keywords in a different colour for easy identification.
The following words are reserved keywords and cannot be used as identifiers under any circumstances.
_
[[abstract type|abstract]]
[[assertion (software development)|assert]] (added in J2SE 1.4)[4]
[[boolean data type|boolean]]
[[boolean data type|boolean]]. In most other languages, the Boolean type is usually simply called bool.[[break statement|break]]
[[#switch|switch]] block.[[byte]]
byte keyword is used to declare a field that can hold an 8-bit signed two's complement integer. This keyword is also used to declare that a method returns a value of the primitive type byte.[[switch statement|case]]
[[#switch|switch]] block can be labeled with one or more [[#case|case]] or [[#default|default]] labels. The [[#switch|switch]] statement evaluates its expression, then executes all statements that follow the matching [[#case|case]] label; see [[#switch|switch]].[[exception handling syntax#Java|catch]]
try block and an optional finally block. The statements in the catch block specify what to do if a specific type of exception is thrown by the try block.[[character (computing)|char]]
[[class (computer science)#Java|class]]
Class.class to get a Class object without needing an instance of that class. For example, [[continue (Java)|continue]]
continue resumes execution at the end of the enclosing labeled loop body.default
default keyword can optionally be used in a switch statement to label a block of statements to be executed if no case matches the specified value; see [[#switch|switch]].[5] Alternatively, the default keyword can also be used to declare default values in a Java annotation. From Java 8 onwards, the default keyword can be used to allow an interface to provide an implementation of a method.[[do while loop|do]]
do keyword is used in conjunction with [[#while|while]] to create a do-while loop, which executes a block of statements associated with the loop and then tests a boolean expression associated with the while. If the expression evaluates to true, the block is executed again; this continues until the expression evaluates to false.[6] [[double precision|double]]
double keyword is used to declare a variable that can hold a 64-bit double precision IEEE 754 floating-point number.[7] This keyword is also used to declare that a method returns a value of the primitive type double.[8] [[conditional (programming)|else]]
else keyword is used in conjunction with [[#if|if]] to create an if-else statement, which tests a boolean expression; if the expression evaluates to true, the block of statements associated with the if are evaluated; if it evaluates to false, the block of statements associated with the else are evaluated.[9] [[enumerated type|enum]] (added in J2SE 5.0)[4]
[[inheritance (object-oriented programming)|extends]]
[[final (Java)|final]]
final.[[exception handling syntax#Java|finally]]
try keyword. The finally block is executed after execution exits the try block and any associated catch clauses regardless of whether an exception was thrown or caught, or execution left method in the middle of the try or catch blocks using the return keyword.[[single precision|float]]
float keyword is used to declare a variable that can hold a 32-bit single precision IEEE 754 floating-point number.[7] This keyword is also used to declare that a method returns a value of the primitive type float.[8] [[for loop|for]]
for keyword is used to create a for loop, which specifies a variable initialization, a boolean expression, and an incrementation. The variable initialization is performed first, and then the boolean expression is evaluated. If the expression evaluates to true, the block of statements associated with the loop are executed, and then the incrementation is performed. The boolean expression is then evaluated again; this continues until the expression evaluates to false.[10] As of J2SE 5.0, the for keyword can also be used to create a so-called "enhanced for loop", which specifies an array or object; each iteration of the loop executes the associated block of statements using a different element in the array or Iterable.[10]
[[if statement|if]]
if keyword is used to create an if statement, which tests a boolean expression; if the expression evaluates to true, the block of statements associated with the if statement is executed. This keyword can also be used to create an if-else statement; see [[#else|else]].[9] implements
import
import statements can import static members of a class. A Java module may itself be imported (by writing import module), automatically importing all exported packages.[11] instanceof
instanceof operator evaluates to true if and only if the runtime type of the object is assignment compatible with the class or interface.[[integer (computer science)|int]]
int keyword is used to declare a variable that can hold a 32-bit signed two's complement integer.[7] This keyword is also used to declare that a method returns a value of the primitive type int.[8] [[interface (Java)|interface]]
static final) fields and static interfaces. It can later be implemented by classes that declare the interface with the implements keyword. As multiple inheritance is not allowed in Java, interfaces are used to circumvent it. An interface can be defined within another interface.[[long integer|long]]
long keyword is used to declare a variable that can hold a 64-bit signed two's complement integer.[7] This keyword is also used to declare that a method returns a value of the primitive type long.[8] [[Java Native Interface|native]]
[[object lifetime#Java|new]]
[[Java package|package]]
package keyword.[[b:Java Programming/Classes, Objects and Types|private]]
private keyword is used in the declaration of a method, field, or inner class; private members can only be accessed by other members of their own class.[12] [[b:Java Programming/Classes, Objects and Types|protected]]
protected keyword is used in the declaration of a method, field, or inner class; protected members can only be accessed by members of their own class, that class's subclasses or classes from the same package.[12] [[b:Java Programming/Classes, Objects and Types|public]]
public keyword is used in the declaration of a class, method, or field; public classes, methods, and fields can be accessed by the members of any class.[12] [[method (computer science)|return]]
[[short integer|short]]
short keyword is used to declare a field that can hold a 16-bit signed two's complement integer.[7] This keyword is also used to declare that a method returns a value of the primitive type short.[8] [[static variable|static]]
static also is used to define a method as a class method. Class methods are bound to the class instead of to a specific instance, and can only operate on class fields. Classes and interfaces declared as static members of another class or interface are behaviorally top-level classes.[13] [[inheritance (object-oriented programming)|super]]
super keyword is also used to forward a call from a constructor to a constructor in the superclass.
[[switch statement|switch]]
switch keyword is used in conjunction with [[#case|case]] and [[#default|default]] to create a switch statement, which evaluates a variable, matches its value to a specific case (including patterns), and executes the block of statements associated with that case. If no case matches the value, the optional block labelled by default is executed, if included.[5] The switch keyword can also be used with the non-reserved keyword yield to create switch expressions.[[mutual exclusion|synchronized]]
Class. Guarantees that at most one thread at a time operating on the same object executes that code. The mutex lock is automatically released when execution exits the synchronized code. Fields, classes and interfaces cannot be declared as synchronized.[[this (Java)|this]]
this can be used to access class members and as a reference to the current instance. The this keyword is also used to forward a call from one constructor in a class to another constructor in the same class.[[exception handling syntax#Java|throw]]
catch keyword to handle an assignment compatible exception type. If no such exception handler is found in the current method, then the method returns and the process is repeated in the calling method. If no exception handler is found in any method call on the stack, then the exception is passed to the thread's uncaught exception handler.[[exception handling syntax#Java|throws]]
Exception but not RuntimeException) must be declared using the throws keyword.[[transient (computer programming)|transient]]
transient keywords are ignored.[14] [15] [[exception handling syntax#Java|try]]
try block, an optional catch block can handle declared exception types. Also, an optional finally block can be declared that will be executed when execution exits the try block and catch clauses, regardless of whether an exception is thrown or not. A try block must have at least one catch clause or a finally block.[[void type|void]]
void keyword is used to declare that a method does not return any value.[8] [[volatile variable|volatile]]
[[do while loop|while]]
while keyword is used to create a while loop, which tests a boolean expression and executes the block of statements associated with the loop if the expression evaluates to true; this continues until the expression evaluates to false. This keyword can also be used to create a do-while loop; see [[#do|do]].[6] The following words are reserved as keywords, but currently have no use or purpose.
[[constant (programming)|const]]
const is not used and has no function.[2] In other languages, const is typically used to define constants. For defining constants in Java, see the final keyword.[[GOTO|goto]]
goto is not used and has no function.[2] In other languages, goto is typically used as a one-way control statement to jump to a label at another line of code.[[strictfp]] (added in J2SE 1.2)
strictfp is obsolete, and no longer has any function.[17] Previously this keyword was used to restrict the precision and rounding of floating point calculations to ensure portability.The following identifiers are contextual keywords, and are only restricted in some contexts:
exports
[[Java Platform Module System|module]]
non-sealed
open
opens
permits
provides
[[Record (computer science)|record]]
.equals, .hashCode, and .toString methods.requires
sealed
to
opens directive to specify which module is allowed to reflectively access the package.transitive
requires directive to indicate that a module not only requires another module but also makes that module's dependencies available to modules that depend on it.uses
[[Type inference|var]]
when
case statement. [20] with
provides directive to specify which implementation of a service is provided by the module.yield
case L:).[21] The following words refer to literal values used by the language.
[[truth value|true]]
[[truth value|false]]
[[null pointer|null]]
. David Flanagan . Java in a Nutshell . Fifth . . March 2005 . 978-0-596-00773-7 . 2010-03-03 . registration.