To deal with numerical information, Java uses six predefined data types, called
**primitive numerical data types**. These are `int`,
`long`, `short`, `byte`, `float`, and
`double`, and they allow us to represent integer and real numbers.

Java offers two additional `non-numeric primitive data types`:
`char` (to represent alphanumeric characters and special symbols) and
`boolean` (to represent the truth values `true` and
`false`).

We will describe these data types in Java by specifying for each of them:

- The
*domain*: the set of possible values that can be represented in the memory of the computer by means of the primitive data type (note that this set will always be finite); - The set of
*operations*: operators of the programming language that allow us to perform elementary operations on values of the primitive data type (e.g.,`+`,`-`,`/`,`*`, etc.) - The set of
*literals*: symbols of the language that define values of the primitive data type (e.g.,`10`,`3.14`,`'A'`,`true`, etc.)

Moreover, we will specify the size of the memory occupied by a value of a certain data type, which will be significant for the numeric data types.