# Java 中的数据类型

> 原文： [https://javabeginnerstutorial.com/core-java-tutorial/data-types-in-java/](https://javabeginnerstutorial.com/core-java-tutorial/data-types-in-java/)

Java 是一种静态类型的语言，这意味着必须先声明所有变量，然后才能使用它们。 这意味着变量的名称和类型必须先定义，然后才能在代码中使用。

```java
 boolean bool = true;
```

通过编写上面的行，我们告诉程序创建了一个名为`boolean`的布尔类型的变量，其默认值为`true`。

Java 有 8 种原始数据类型。

## 不同的原始数据类型

Java 支持以下提到的原始数据类型。

|  | 原始类型 | 默认值 | 包装类 |
| --- | --- | --- | --- |
|  | `boolean` | `false` | `Boolean` |
|  | `char` | `\u0000` | `Char` |
| 整数 | `byte` | `(byte)0` | `Byte` |
|  | `short` | `(short)0` | `Short` |
|  | `int` | `0` | `Integer` |
|  | `long` | `0l` | `Long` |
| 浮点 | `float` | `0.0` | `Float` |
|  | `double` | `0.0d` | `Double` |

### `boolean`

布尔数据类型用`boolean`关键字声明。 它只有两个可能的值：`true`和`false`。 此数据类型可用于简单标记目的，以跟踪真/假条件。

### `char`

`char`数据类型是单个 16 位 Unicode 字符。 最小值为`'\u0000'`（或 0），最大值为`'\uffff'`（或 65,535（含））。

### `byte`

字节数据类型用`byte`关键字声明。 它的最小值可以为 -128，最大值可以为 127（含）。 默认值为 0。如果假定变量在给定范围内包含较小的值，则可以使用字节数据类型代替`int`。 它有两个目的

*   以字节节省空间是 8 位有符号整数，比`int`小 4 倍
*   它们的限制有助于澄清您的代码，变量范围有限的事实可以作为文档的一种形式。

### `short`

`short`数据类型可以使用`short`关键字声明。 `short`数据类型是 16 位带符号的二进制补码整数。 其值介于 -32,768 到 32,767（含）之间。 它的默认值为 0。当变量的值介于范围之间时，可以使用`short`数据类型代替`int`。 如上所述，它将用于两个目的。

### `int`

默认情况下，`int`数据类型是 32 位**带符号的**（`+/-`）二进制补码整数，最小值为`-2^31 `，最大值为`2^31-1`。 在 Java SE 8 和更高版本中，您可以使用`int`数据类型表示**无符号**（`+`）32 位整数，其最小值为 0，最大值为`2^32-1`。

请注意，即使在 Java 8 中，`int`也是带符号的。 但是有些方法将它们视为无符号，但是无法在 Java 8 或更高版本中声明`Unsigned int`。

尝试打印以下代码以获得`int`支持的最小值和最大值。 这些值可以分配给变量。

*   `Inetegr.MAX_VALUE`
*   `Inetegr.MIN_VALUE`

### `long`

`long`数据类型是 64 位二进制补码**整数**。 有符号长号的最小值为`-2^63`，最大值为`2^63-1`。 用简单的方式，您可以说它是`int`的增强版本。 当您需要的值范围比`int`提供的值宽时，应使用此数据类型。

在 Java 8 及更高版本中，您可以使用`long`数据类型表示无符号的 64 位长，其最小值为 0，最大值为`2^64-1`。

请注意，即使在 Java 8 中，`long`也是带符号的。 但是，有些方法将它们视为无符号。 `compareUnsigned`和`divideUnsigned`是`Long`包装器类中的一些方法，支持无符号`long`的算术运算。 有关`Unsigned Int`或`Long`的更多详细信息，可以在[这里找到](https://blogs.oracle.com/darcy/unsigned-integer-arithmetic-api-now-in-jdk-8)。

### `float`

`float`数据类型是单精度（32 位）IEEE 754 浮点。 当您需要小数部分但不需要很高的精度时，`float`类型的变量很有用。 在单精度中，小数部分使用 23 位。 此数据类型可用于常规的日常计算。

### `double`

`double`数据类型是双精度（64 位）IEEE 754 浮点数。 它是浮点数，精度更高。 在双精度中，小数部分使用 52 位。 由于双精度比单精度需要更多的内存，因此不建议将其用于正常计算。 它主要用于科学计算。

