Note Developers who argue that Java should only support objects are not happy
era devices, to which Java was originally targeted.
A user-defined type isatypethatisdefinedbythedeveloperusingaclass,aninterface,
an enum, or an annotation type; and whose values are objects. For example, Java's
String class defines the string user-defined type; its values describe strings of char-
acters, and its methods perform various string operations such as concatenating two
cusses enums and annotation types.
User-definedtypesarealsoknownas reference types becauseavariableofthattype
stores a reference (a memory address or some other identifier) to a region of memory
directly; they don't store references to these values.
An array type isaspecialreferencetypethatsignifiesan array ,aregionofmemorythat
This type consists of the element type (a primitive type or a user-defined type) and
one or more pairs of square brackets that indicate the number of dimensions (extents).
A single pair of brackets signifies a one-dimensional array (a vector), two pairs of
dimensional array of two-dimensional arrays (a vector of tables), and so on. For ex-
ample, int signifies a one-dimensional array (with int as the element type), and
double signifies a two-dimensional array (with double as the element type).
Programs manipulate values that are stored in memory, which is symbolically repres-
ented in source code through the use of the variables feature. A variable is a named
referred to as reference variables .