Java is a strongly typed language, which means that every variable and every expression has a type that is known at compile time. Types limit the values that a variable can hold or that an expression can produce, limit the operations supported on those values, and determine the meaning of the operations. Strong typing helps detect errors at compile time.
The types of the Java language are divided into two categories: primitive types and reference types. A primitive type is predefined by the Java language and named by its reserved keyword. The primitive types are the boolean type and the numeric types: byte, short, int, long, char, float, and double. There are three kinds of reference types: class types, interface types, and array types.
There is a special null type, the type of the expression null, which has no name. In practice, you can ignore the null type and just pretend that null is a special literal that that can be of any reference type.
boolean keyword
byte keyword
char keyword
class keyword
double keyword
float keyword
int keyword
interface keyword
long keyword
short keyword
void keyword
Source: The Java Language Specification. Copyright (C) 1996 Sun Microsystems, Inc.