Java 数据类型

Java 数据类型

如上一章所述,Java 中的变量必须指定数据类型:

实例

int myNum = 5;               // 整数 (whole number)
float myFloatNum = 5.99f;    // 浮点数
char myLetter = 'D';         // 字符
boolean myBool = true;       // 布尔值
String myText = "Hello";     // 字符串

亲自试一试

数据类型分为两组:

  • 原始数据类型 - 包括 byteshortintlongfloatdoublebooleanchar
  • 非原始数据类型 - 例如 字符串数组(您将在后面的章节中学到更多内容)

原始数据类型

原始数据类型指定变量值的大小和类型,并且不拥有额外的方法。

Java 中有八种原始数据类型:

数据类型 大小 描述
byte 1 字节 存储从 -128 到 127 的整数。
short 2 字节 存储从 -32,768 到 32,767 的整数。
int 4 字节 存储从 -2,147,483,648 到 2,147,483,647 的整数。
long 8 字节 存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
float 4 字节 存储小数。足以存储 6 到 7 位十进制数字。
double 8 字节 存储小数。足以存储 15 位十进制数字。
boolean 1 比特 存储 true 值或 false 值。
char 2 字节 存储单个字符/字母或 ASCII 值

数字

原始数字类型分为两组:

整数类型存储整数,正数或负数(例如 123 或 -456),没有小数。有效类型为 byteshortintlong。您应该使用哪种类型取决于数值。

浮点类型表示带有小数部分的数字,包含一位或多位小数。有两种类型:floatdouble

提示:尽管 Java 中有许多数字类型,但最常用于数字的是 int(整数)和 double(浮点数)。请继续学习,马上为您讲解。

整数类型

Byte

byte 数据类型可以存储从 -128 到 127 的整数。如果您确定该值将在 -128 和 127 之间,则可以使用它代替 int 或其他整数类型来节省内存:

实例

byte myNum = 100;
System.out.println(myNum);

亲自试一试

Short

short 数据类型可以存储从 -32768 到 32767 的整数:

实例

short myNum = 5000;
System.out.println(myNum);

亲自试一试

Int

int 数据类型可以存储从 -2147483648 到 2147483647 的整数。 一般来说,在我们的教程中,当我们创建存有数值的变量时,int 数据类型是首选数据类型。

实例

int myNum = 100000;
System.out.println(myNum);

亲自试一试

Long

long 数据类型可以存储从 -9223372036854775808 到 9223372036854775807 的整数。当 int 不足以存储值时使用。请注意,该值以 "L" 结尾:

实例

long myNum = 15000000000L;
System.out.println(myNum);

亲自试一试

浮点类型

每当需要带小数的数字(例如 9.99 或 3.14515)时,都应该使用浮点类型。

floatdouble 数据类型可以存储小数。请注意,对于浮点型,应以 "f" 结尾,对于双精度型,应以 "d" 结尾:

Float 实例

float myNum = 5.75f;
System.out.println(myNum);

亲自试一试

Double 实例

double myNum = 19.99d;
System.out.println(myNum);

亲自试一试

使用 float 还是 double?

浮点值的精度指示该值小数点后可以有多少位。float 的精度只有六位或七位小数,而 double 变量的精度约为 15 位。因此,对于大多数计算来说,使用 double 更安全。

科学数字

浮点数也可以是带有 "e" 的科学数,表示 10 的幂:

实例

float f1 = 35e3f;
double d1 = 12E4d;
System.out.println(f1);
System.out.println(d1);

亲自试一试

布尔值

在编程中,您经常需要一种只能有两个值之一的数据类型,比如:

  • 是 / 否
  • 开 / 关
  • 真 / 假

为此,Java 提供了 boolean 数据类型,它只能取值 truefalse

实例

boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun);     // 输出 true
System.out.println(isFishTasty);   // 输出 false

亲自试一试

提示:布尔值主要用于条件测试。在本教程的稍后部分,您将学到更多关于布尔值条件的内容。

字符

char 数据类型用于存储单个字符。字符必须用单引号括起来,例如 'A' 或 'c':

实例

char myGrade = 'B';
System.out.println(myGrade);

亲自试一试

或者,您可以使用 ASCII 值来显示某些字符:

实例

char myVar1 = 65, myVar2 = 66, myVar2 = 67;
System.out.println(myVar1);
System.out.println(myVar2);
System.out.println(myVar3);

亲自试一试

提示:您可以在我们的 ASCII 参考手册 中找到所有 ASCII 值的列表。

字符串

String 数据类型用于存储字符序列(文本)。字符串值必须用双引号括起来:

实例

String greeting = "Hello World";
System.out.println(greeting);

亲自试一试

String 类型在 Java 中被大量使用和集成,有人称它为“特殊的第九种类型”。

Java 中的 String 实际上是一种非原始数据类型,因为它指的是对象。String 对象拥有用于对字符串执行操作的方法。

如果您还不理解术语“对象”,请不要担心。我们将在后面的章节中讲解有关字符串和对象的更多知识。

真实生活中的例子

以下是一个使用不同数据类型来计算并输出多个项目总费用的实际例子:

// 创建不同数据类型的变量
int items = 50;
float costPerItem = 9.99f;
float totalCost = items * costPerItem;
char currency = '$';

// 打印变量
System.out.println("Number of items: " + items);
System.out.println("Cost per item: " + costPerItem + currency);
System.out.println("Total cost = " + totalCost + currency);

亲自试一试

非原始数据类型

非原始数据类型称为引用类型,因为它们引用对象。

原始数据类型和非原始数据类型之间的主要区别是:

  • Java 中预定义(已经定义了)原始类型。非原始类型是由程序员创建的,不是由 Java 定义的(String 除外)。
  • 非原始类型可用于调用方法来执行某些操作,而原始类型则不能。
  • 原始类型总是有值,而非原始类型可以为 null
  • 原始类型以小写字母开头,而非原始类型以大写字母开头。

非原始类型的例子有: 字符串数组接口 等。您将在后面的章节中学到更多相关内容。