专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 八大基本数据类型

八大基本数据类型

更新时间:2022-07-28 10:42:46 来源:动力节点 浏览690次

Java 中定义的八个原语是int、byte、short、long、float、double、boolean 和char。这些不被视为对象并代表原始值。

它们直接存储在Java堆栈中。

1.整数

我们要介绍的第一个原始数据类型是int。也称为整数,int类型包含范围广泛的非小数数值。

具体来说,Java 使用 32 位内存来存储它。换句话说,它可以表示从 -2,147,483,648 (-2 31 ) 到 2,147,483,647 (2 31 -1) 的值。

在 Java 8 中,可以通过使用新的特殊辅助函数来存储最大为 4,294,967,295 (2 32 -1)的无符号整数值。

我们可以简单地声明一个int:

int x = 424_242;
int y;

在没有赋值的情况下声明的int的默认值为0。

如果变量是在方法中定义的,我们必须先赋值才能使用它。

我们可以对int执行所有标准算术运算。请注意,在对整数执行这些操作时,十进制值将被截断。

2.字节

byte是一种类似于int的原始数据类型,只是它只占用 8 位内存。这就是我们称之为字节的原因。因为内存太小了,byte只能保存 -128 (-2 7 ) 到 127 (2 7 – 1) 的值。

以下是我们如何创建byte:

byte b = 100;
byte empty;

byte的默认值也是 0。

3.短的

我们的 Java 原始数据类型列表的下一站是short。

如果我们想节省内存并且byte太小,我们可以使用介于byte和int之间的类型:short。

在 16 位内存中,它是int大小的一半,是byte大小的两倍。它的可能值范围是 -32,768(-2 15 ) 到 32,767(2 15 – 1)。

short声明如下:

short s = 20_020;
short s;

也与其他类型类似,默认值为 0。我们也可以在其上使用所有标准算术。

4.长

我们最后一个与整数相关的原始数据类型是long。

long是int的大哥。它存储在 64 位内存中,因此它可以保存更大的可能值集。

long 的可能值介于 -9,223,372,036,854,775,808 (-2 63 ) 到 9,223,372,036,854,775,807 (2 63 – 1) 之间。

我们可以简单地声明一个:

long l = 1_234_567_890;
long l;

与其他整数类型一样,默认值也是 0。我们可以在long上使用所有适用于int的算术。

5.漂浮

我们使用浮点类型表示 Java 中的基本小数。这是一个单精度十进制数。这意味着,如果我们超过了小数点后六位,这个数字就会变得不那么精确,而更像是一个估计值。

在大多数情况下,我们并不关心精度损失。但是如果我们的计算需要绝对的精度(例如金融操作、登月等),我们需要使用为这项工作设计的特定类型。有关更多信息,请查看 Java 类Big Decimal。

这种类型与int一样存储在 32 位内存中。但是,由于是浮点数,它的范围有很大的不同。它可以表示正数和负数。最小的小数是 1.40239846 x 10 -45,最大值是 3.40282347 x 10 38。

我们声明float与任何其他类型相同:

float f = 3.145f;
float f;

默认值为 0.0 而不是 0。另外,请注意我们将f指定添加到文字数字的末尾以定义浮点数。否则,Java 将抛出错误,因为十进制值的默认类型是double。

我们还可以对float执行所有标准算术运算。然而,重要的是要注意我们执行浮点运算与整数运算非常不同。

6.双倍的

接下来,我们看一下double。它的名字来源于它是一个双精度十进制数。

它存储在 64 位内存中。这意味着它代表的可能数字范围比float大得多。

虽然,它确实受到与float相同的精度限制。范围是 4.9406564584124654 x 10 -324到 1.7976931348623157 x 10 308。该范围也可以是正数或负数。

声明double与其他数字类型相同:

double d = 3.13457599923384753929348D;
double d;

与float一样,默认值也是 0.0 。与浮点数类似,我们附加字母D以将文字指定为双精度数。

7.布尔值

最简单的原始数据类型是boolean。它只能包含两个值:true或false。它将其值存储在一个位中。

然而,为方便起见,Java 填充该值并将其存储在单个字节中。

以下是我们声明boolean的方式:

boolean b = true;
boolean b;

在没有值的情况下声明它默认为false。布尔值是控制我们的程序流的基石。我们可以对它们使用布尔运算符(例如,和,或,等等)。

8.字符

最后要查看的原始数据类型是char。

char也称为字符,是一个 16 位整数,表示 Unicode 编码的字符。它的范围是从 0 到 65,535。在 Unicode 中,这表示'\u0000'到'\uffff'。

有关所有可能的 Unicode 值的列表,请查看Unicode Table等网站。

现在让我们声明一个char:

char c = 'a';
char c = 65;
char c;

在定义变量时,我们可以使用任何字符文字,它们会自动转换为我们的 Unicode 编码。字符的默认值为'/u0000'。

9.溢出

原始数据类型有大小限制。但是如果我们尝试存储一个大于最大值的值会发生什么?

我们遇到了一种叫做溢出的情况。

当整数溢出时,它会翻转到最小值并从那里开始向上计数。

浮点数通过返回 Infinity 溢出:

int i = Integer.MAX_VALUE;
int j = i + 1;
// j will roll over to -2_147_483_648
double d = Double.MAX_VALUE;
double o = d + 1;
// o will be Infinity

下溢是同样的问题,只是它涉及存储一个小于最小值的值。当数字下溢时,它们返回 0.0。

10.自动装箱

每个原始数据类型还具有可以包装它的完整 Java 类实现。例如,Integer类可以包装一个int。有时需要从原始类型转换为其对象包装器(例如,将它们与泛型一起使用)。

幸运的是,Java 可以自动为我们执行这种转换,这个过程称为Autoboxing:

Character c = 'c';
Integer i = 1;

以上就是关于“八大基本数据类型”的介绍,大家如果对此比较感兴趣,想了解更多相关知识,可以关注一下Java的数据类型介绍,里面有更丰富的知识等着大家去学习,相信对大家一定会有所帮助的。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>