跳到主要内容

Java 数据类型(原始类型)

提示
  1. 数据类型概述:Java 是静态类型语言,要求所有变量在使用前必须声明。它包含 8 种基本(原始)数据类型:booleanbyteshortintlongfloatdoublechar
  2. 整数数据类型:整数类型包括 byte(-128 至 127),short(-32768 至 32767),int(-2^31 至 2^31-1),long(-2^63 至 2^63-1)。这些数据类型用于存储整数值。
  3. 浮点型和字符型floatdouble 用于存储浮点数,其中 float 是单精度(32 位),double 是双精度(64 位)。char 用于存储单个字符,是一个 16 位的 Unicode 字符。

Java 数据类型

顾名思义,数据类型指定了可以存储在 Java 变量中 的数据类型。

Java 是一种静态类型语言。这意味着所有变量必须在使用前声明。

int speed;

这里,speed 是一个变量,该变量的数据类型是 int

int 数据类型决定了 speed 变量只能包含整数。

Java 中预定义了 8 种数据类型,称为原始数据类型。

注意:除了原始数据类型之外,还有引用类型(对象类型)。

8种原始数据类型

1. 布尔类型

  • boolean 数据类型有两个可能的值,truefalse
  • 默认值:false
  • 它们通常用于 true/false 条件。

示例 1:Java 布尔数据类型

class Main {
public static void main(String[] args) {

boolean flag = true;
System.out.println(flag); // 打印 true
}
}

2. 字节类型

  • byte 数据类型的值范围是 -128127(8位有符号二进制补码整数)。
  • 如果可以确定变量的值将在 -128 到 127 之间,则使用它而不是 int 可以节省内存。
  • 默认值:0

示例 2:Java 字节数据类型

class Main {
public static void main(String[] args) {

byte range;
range = 124;
System.out.println(range); // 打印 124
}
}

3. 短整型

  • Java 中的 short 数据类型的值范围是 -3276832767(16位有符号二进制补码整数)。
  • 如果可以确定变量的值将在 -32768 到 32767 之间,则使用它而不是其他整数数据类型(intlong)。
  • 默认值:0

示例 3:Java 短整型数据类型

class Main {
public static void main(String[] args) {

short temperature;
temperature = -200;
System.out.println(temperature); // 打印 -200
}
}
```### 4. int 类型

- `int` 数据类型的值范围是 **-2^31****2^31-1**32位有符号二进制补码整数)。
- 如果您使用的是 Java 8 或更高版本,您可以使用无符号的 32 位整数。这将具有 0 的最小值和 **2^32-1** 的最大值。要了解更多,请访问 [如何在 Java 8 中使用无符号整数?](http://stackoverflow.com/questions/25556017/how-to-use-the-unsigned-integer-in-java-8)
- 默认值:0

### 示例 4Java int 数据类型

```java exec
class Main {
public static void main(String[] args) {

int range = -4250000;
System.out.println(range); // 打印 -4250000
}
}

5. long 类型

  • long 数据类型的值范围是 -2^632^63-1(64位有符号二进制补码整数)。
  • 如果您使用的是 Java 8 或更高版本,您可以使用最小值为 0,最大值为 2^64-1 的无符号 64 位整数。
  • 默认值:0

示例 5:Java long 数据类型

class LongExample {
public static void main(String[] args) {

long range = -42332200000L;
System.out.println(range); // 打印 -42332200000
}
}

请注意,-42332200000 末尾的 L 表示它是 long 类型的整数。

6. double 类型

  • double 数据类型是双精度 64 位浮点数。
  • 它永远不应该用于精确的值,比如货币。
  • 默认值:0.0(0.0d)

示例 6:Java double 数据类型

class Main {
public static void main(String[] args) {

double number = -42.3;
System.out.println(number); // 打印 -42.3
}
}

7. float 类型

  • float 数据类型是单精度 32 位浮点数。如果您感兴趣,可以了解更多关于 单精度和双精度浮点数 的信息。
  • 它永远不应该用于精确的值,比如货币。
  • 默认值:0.0(0.0f)

示例 7:Java float 数据类型

class Main {
public static void main(String[] args) {

float number = -42.3f;
System.out.println(number); // 打印 -42.3
}
}
```请注意,在上面的程序中我们使用了 `-42.3f` 而不是 `-42.3`。这是因为 `-42.3` 是一个 `double` 字面量。

要让编译器将 `-42.3` 当作 `float` 而不是 `double`,您需要使用 `f` 或 `F`。

如果您想了解单精度和双精度,请访问 [Java 单精度和双精度浮点数](http://stackoverflow.com/questions/801117/whats-the-difference-between-a-single-precision-and-double-precision-floating-p)

### 8. char 类型

- 它是一个 16 位的 Unicode 字符。
- `char` 数据类型的最小值是 `'\u0000'`(0),最大值是 `'\uffff'`。
- 默认值:`'\u0000'`

### 示例 8Java char 数据类型

```java exec
class Main {
public static void main(String[] args) {

char letter = '\u0051';
System.out.println(letter); // 打印 Q
}
}

这里,Q 的 Unicode 值是 \u0051。因此,输出结果为 Q

这是另一个示例:

class Main {
public static void main(String[] args) {

char letter1 = '9';
System.out.println(letter1); // 打印 9

char letter2 = 65;
System.out.println(letter2); // 打印 A

}
}

在这里,我们将字符 9(由单引号指定)分配给了 letter1 变量。然而,letter2 变量被分配为整数 65(没有单引号)。

因此,输出打印了 A。这是因为 Java 将字符视为整数,而 A 的 ASCII 值是 65。要了解更多关于 ASCII 的信息,请访问 什么是 ASCII 码?

String 类型

Java 通过 java.lang.String 类也提供了对字符字符串的支持。Java 中的字符串不是原始类型。相反,它们是对象。例如,

String myString = "Java 编程";

这里,myStringString 类的一个对象。要了解更多,请访问 Java 字符串