In the Java programming language, a keyword is any one of 68 reserved words 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. 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.

Reserved keywords The following words are reserved keywords and cannot be used as identifiers under any circumstances.

abstract A method with no definition must be declared as abstract and the class containing it must be declared as abstract. Abstract classes cannot be instantiated. Abstract methods must be implemented in the sub classes. The abstract keyword cannot be used with variables or constructors. Note that an abstract class isn't required to have an abstract method at all. See abstract type.

assert (added in J2SE 1.4) Assert describes a predicate (a true–false statement) placed in a Java program to indicate that the developer thinks that the predicate is always true at that place. If an assertion evaluates to false at run-time, an assertion failure results, which typically causes execution to abort. Assertions are disabled at runtime by default, but can be enabled through a command-line option or programmatically through a method on the class loader. See assertion.

boolean Defines a boolean variable for the values "true" or "false" only. By default, the value of boolean primitive type is false. This keyword is also used to declare that a method returns a value of the primitive type boolean. In most other languages, the Boolean type is usually simply called bool.

break Used to end the execution in the current loop body. Used to break out of a switch block. See break statement.

byte The 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.

case A statement in the switch block can be labeled with one or more case or default labels. The switch statement evaluates its expression, then executes all statements that follow the matching case label; see switch. See switch statement.

catch Used in conjunction with a 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. See Java exception handling syntax.

char Defines a character variable capable of holding any character of the Java source file's character set.

class A type that defines the implementation of a particular kind of object. A class definition defines instance and class fields, methods, and inner classes as well as specifying the interfaces the class implements and the immediate superclass of the class. If the superclass is not explicitly specified, the superclass is implicitly . The class keyword can also be used in the form X.class to get a java.lang.Class<X> object without needing an instance of that class. For example, String.class can be used instead of doing new String().getClass().

continue Used to resume program execution at the end of the current loop body. If followed by a label, continue resumes execution at the end of the enclosing labeled loop body. See continue statement.

default The 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. 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 The do keyword is used in conjunction with 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. See do while loop.

double The double keyword is used to declare a variable that can hold a 64-bit double precision IEEE 754 floating-point number. This keyword is also used to declare that a method returns a value of the primitive type double.

else The else keyword is used in conjunction with 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.

enum (added in J2SE 5.0) A Java keyword used to declare an enumerated type. Enumerations extend the base class .

extends Used in a class declaration to specify the superclass; used in an interface declaration to specify one or more superinterfaces. Class Y inherits from (extends) class X to add functionality, either by adding fields or methods to class X, or by overriding methods of class X. An interface J inherits from (extends) one or more interfaces I1, I2, ..., by adding methods. Class Y is said to be a subclass of class X; Interface J is said to be a subinterface of the interfaces I1, I2, ... it inherits from. Also used to specify an upper bound on a type parameter in Generics. See inheritance.

final Define an entity once that cannot be changed nor derived from later. More specifically: a final class cannot be subclassed, a final method cannot be overridden, and a final variable can occur at most once as a left-hand expression on an executed command. All methods in a final class are implicitly final. See final (Java).

finally Used to define a block of statements for a block defined previously by the 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. See Java exception handling syntax.

float The float keyword is used to declare a variable that can hold a 32-bit single precision IEEE 754 floating-point number. This keyword is also used to declare that a method returns a value of the primitive type float.

for The 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. 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 java.lang.Iterable<T>.

if The 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.

implements Included in a class declaration to specify one or more interfaces that are implemented by the current class. A class inherits the types and abstract methods declared by the interfaces.

import Used at the beginning of a source file to specify classes or entire Java packages to be referred to later without including their package names in the reference. Since J2SE 5.0, 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.

instanceof A binary operator that takes an object reference as its first operand and a class or interface as its second operand and produces a boolean result. The instanceof operator evaluates to true if and only if the runtime type of the object is assignment compatible with the class or interface.

int The int keyword is used to declare a variable that can hold a 32-bit signed two's complement integer. This keyword is also used to declare that a method returns a value of the primitive type int.

interface Used to declare an interface that only contains abstract or default methods, constant (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 The long keyword is used to declare a variable that can hold a 64-bit signed two's complement integer. This keyword is also used to declare that a method returns a value of the primitive type long.

native Used in method declarations to specify that the method is not implemented in the same Java source file, but rather in another language. See Java Native Interface.

new Used to create an instance of a class or array object. See Java object lifetime.

package Java package is a group of similar classes and interfaces. Packages are declared with the package keyword. See Java package.

private The 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. See access modifiers.

protected The 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. See access modifiers.

public The 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. See access modifiers.

return Used to finish the execution of a method. It can be followed by a value required by the method definition that is returned to the caller. See return statement.

short The short keyword is used to declare a field that can hold a 16-bit signed two's complement integer. This keyword is also used to declare that a method returns a value of the primitive type short.

static Used to declare a field, method, or inner class as a class field. Classes maintain one copy of class fields regardless of how many instances exist of that class. 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. See static variable.

super Inheritance basically used to achieve dynamic binding or run-time polymorphism in Java. Used to access members of a class inherited by the class in which it appears. Allows a subclass to access overridden methods and hidden members of its superclass. The super keyword is also used to forward a call from a constructor to a constructor in the superclass. Also used to specify a lower bound on a type parameter in Generics. See inheritance.

switch The switch keyword is used in conjunction with case and 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. The switch keyword can also be used with the non-reserved keyword yield to create switch expressions.

synchronized