Java 基本数据类型
Java 变量只不过是用于存储值的内存位置。 这意味着当你创建一个变量时,会在内存中保留一些空间。
操作系统根据变量的数据类型分配内存并决定可以在保留内存中存储什么。 因此,通过为变量分配不同的数据类型,我们可以在这些变量中存储整数、小数或字符。
Java 中有两种可用的数据类型:
- 原始数据类型 - 包括
byte
,short
,int
,long
,float
,double
,boolean
和char
- 引用/对象数据类型 - 例如: String, Arrays 和 Classes
示例
int myNum = 5; // 整型 float myFloatNum = 5.99f; // 浮点数 char myLetter = 'D'; // 字符 boolean myBool = true; // 布尔值 String myText = "Hello"; // 字符串
原始数据类型
原始数据类型指定变量值的大小和类型,并且没有其他方法。
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 位 | 存储真值或假值 |
char | 2 字节 | 存储单个字符/字母或 ASCII 值 |
数字
原始数字类型分为两组:
整数类型 存储整数,正数或负数(例如 123 或 -456),没有小数。 有效类型为 byte
、short
、int
和 long
。 应该使用哪种类型取决于数值。
浮点类型 表示带有小数部分的数字,包含一位或多位小数。 有两种类型:float
和 double
。
尽管 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 数据类型是首选数据类型。
Long
long 数据类型可以存储从 -9223372036854775808 到 9223372036854775807 的整数。当 int 不足以存储值时,使用 long。 请注意,您应该以“L”结束该值:
long myNum = 15000000000L; System.out.println(myNum);
浮点类型
每当需要带小数的数字(例如 9.99 或 3.14515)时,都应使用浮点类型。
Float
Float 数据类型可以存储从 3.4e-038 到 3.4e+038 的小数。 请注意,应该以“f”结束该值:
float myNum = 5.75f; System.out.println(myNum);
Double
double 数据类型可以存储从 1.7e−308 到 1.7e+308 的小数。 请注意,应该以“d”结束该值:
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);
布尔值
布尔数据类型是用 boolean 关键字声明的,并且只能取值为 true 或 false:
boolean isJavaFun = true; boolean isFishTasty = false; System.out.println(isJavaFun); System.out.println(isFishTasty);
布尔值主要用于条件测试,我们将在后面的章节中了解更多信息。
字符
char 数据类型用于存储单个字符。 字符必须用单引号括起来,例如 'A' 或 'c':
char myGrade = 'B'; System.out.println(myGrade);
或者,我们可以使用 ASCII 值来显示某些字符:
char myVar1 = 65, myVar2 = 66, myVar3 = 67; System.out.println(myVar1); System.out.println(myVar2); System.out.println(myVar3);
提示
:可以在我们的 ASCII 表参考 中找到所有 ASCII 值的列表。
Strings
String 数据类型用于存储字符序列(文本)。 字符串值必须用双引号括起来:
String greeting = "Hello World"; System.out.println(greeting);
String 类型在 Java 中被大量使用和集成,有人称它为“特殊的第九种类型”。 Java 中的 String 实际上是一种非原始数据类型,因为它指的是一个对象。 String 对象具有用于对字符串执行某些操作的方法。 如果还不理解术语“对象”,请不要担心。 我们将在后面的章节中了解有关字符串和对象的更多信息。
引用/对象数据类型
非原始数据类型称为引用类型,因为它们引用对象。
原始数据类型和非原始数据类型之间的主要区别是:
- Java 中预定义(已经定义)原始类型。 非原始类型是由程序员创建的,不是由 Java 定义的(String 除外)。
- 非原始类型可用于调用方法来执行某些操作,而原始类型则不能。
- 原始类型总是有一个值,而非原始类型可以为空。
- 原始类型以小写字母开头,而非原始类型以大写字母开头。
- 原始类型的大小取决于数据类型,而非原始类型的大小都相同。
非原始类型的示例包括字符串、数组、类、接口等。我们将在后面的章节中了解更多关于这些内容的信息。