Java 数据类型

Java 数据类型

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. int myNum = 5; // integer (whole number)
  4. float myFloatNum = 5.99f; // floating point number
  5. char myLetter = 'D'; // character
  6. boolean myBool = true; // boolean
  7. String myText = "Hello"; // String
  8. System.out.println(myNum);
  9. System.out.println(myFloatNum);
  10. System.out.println(myLetter);
  11. System.out.println(myBool);
  12. System.out.println(myText);
  13. }
  14. }

数据类型分为两组:

  • 基本数据类型 - 包括 byte, short, int, long, float, double, booleanchar
  • 非基本数据类型 - 比如 String, ArraysClasses (在后面的章节中,您将了解更多关于这些类型的知识)

基本数据类型

基元数据类型指定变量值的大小和类型,并且没有其他方法。

Java 中有八种基本数据类型:

数据类型大小描述
byte1 byte存储从 -128 到 127 的整数
short2 bytes存储从 -32768 到 32767 的整数
int4 bytes存储从 -2147483648 到 2147483647 的整数
long8 bytes存储从 -9223372036854775808 到 9223372036854775807 的整数
float4 bytes存储小数。足以存储 6 到 7 位小数
double8 bytes存储小数。足以存储 15 位小数
boolean1 bit存储 true 或 false
char2 bytes存储单个字符/字母或 ASCII 值

数字

基本数类型分为两组:

  • 整数类型,正数或负数(如 123 或 -456),不带小数。有效类型有 byteshortintlong,应该使用哪种类型取决于数值。

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

尽管 Java 中有很多数字类型,但最常用于数字的是 int(表示整数)和 double(表示浮点数)。后面我们会详细讲解这些类型。

整数类型

Byte

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. byte myNum = 100;
  4. System.out.println(myNum);
  5. }
  6. }
Short

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. short myNum = 5000;
  4. System.out.println(myNum);
  5. }
  6. }
Int

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. int myNum = 100000;
  4. System.out.println(myNum);
  5. }
  6. }
Long

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. long myNum = 15000000000L;
  4. System.out.println(myNum);
  5. }
  6. }

浮点类型

当需要小数点的数字时,如 9.99 或 3.14515,应使用浮点类型。

Float

float 类型可以存储 3.4e−038 至 3.4e+038 中的小数。请注意,该值应以 "f" 结尾:

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. float myNum = 5.75f;
  4. System.out.println(myNum);
  5. }
  6. }
Double

double 类型可以存储 1.7e−308 至 1.7e+308 中的小数。请注意,该值应以 "d" 结尾:

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. double myNum = 19.99d;
  4. System.out.println(myNum);
  5. }
  6. }

使用 float 还是 double

浮点值的 精度 表示该值在小数点后可以有多少位数。float 的精度只有 6 或 7 位小数,而 double 的精度约为 15 位。因此,在大多数计算中使用 double 更安全。
科学数字

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. float f1 = 35e3f;
  4. double d1 = 12E4d;
  5. System.out.println(f1);
  6. System.out.println(d1);
  7. }
  8. }

布尔值

布尔数据类型是用 boolean 关键字声明的,只能取 truefalse 值:

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. boolean isJavaFun = true;
  4. boolean isFishTasty = false;
  5. System.out.println(isJavaFun);
  6. System.out.println(isFishTasty);
  7. }
  8. }

布尔值主要用于条件测试,您将在后面的章节中了解更多。


Characters

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. char myGrade = 'B';
  4. System.out.println(myGrade);
  5. }
  6. }

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. char myVar1 = 65, myVar2 = 66, myVar3 = 67;
  4. System.out.println(myVar1);
  5. System.out.println(myVar2);
  6. System.out.println(myVar3);
  7. }
  8. }

提示:所有 ASCII 值的列表可以在本站的 ASCII 参考 中找到。


Strings

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

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. String greeting = "Hello World";
  4. System.out.println(greeting);
  5. }
  6. }

字符串类型在 Java 中被大量使用和集成,以至于有人将其称为 "特殊的第 9 种类型"。

Java 中的字符串实际上是一种 非基本 数据类型,因为它引用了一个对象。String 对象具有用于对字符串执行某些操作的方法。如果你还不明白 "对象" 这个词,别担心。我们将在后面的章节中了解更多关于字符串和对象的信息。

非基本数据类型

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

基本 数据类型和 非基本 数据类型之间的主要区别是:

  • 基本类型在 Java 中是预定义的(已经定义)。非原语类型由程序员创建,不由 Java 定义(字符串除外)。
  • 非基本类型可以用来调用方法来执行某些操作,而基本类型不能。
  • 基本类型始终有一个值,而非基本类型可以为 null。
  • 基本类型以小写字母开头,而非基本类型以大写字母开头。
  • 基本类型的大小取决于数据类型,而非基本类型的大小都相同。

非基本类型的示例有字符串(Strings)、数组(Arrays)、类(Classes)、接口(Interface)等。您将在后面的章节中学习到更多有关这些类型的知识。