Java基本数据类型

tech2024-06-30  68

基本数据类型

整数类型

byte:字节类型

八位,有符号的,以二进制补码表示的整数; 最小值为*-128(-2^7)*; 最大值为127(2^7 - 1); 默认值是0; byte类型用在大型数组中节约空间,主要代替整数,byte变量占用的空间只用int类型的1/4;

int:整型

三十二位,有符号的,以二进制补码表示的整数; 最小值是*-2,147,483,648(-2^31)*; 最大值是2,147,483,648(2^31 - 1); 默认值是0; 一般的整型变量默认为int类型;

short:短整型

十六位,有符号的,以二进制补码表示的整数; 最小值为*-32,768(-2^15)*; 最大值为32,767(2^15 - 1); 默认值是0; short类型也可以像byte类型那样节省空间,short类型占用的空间为int类型的1/2;

long:长整型

三十二位,有符号的,以二进制补码表示的整数; 最小值是*-9,223,372,036,854,775,808(-2^63)*; 最大值是9,223,372,036,854,775,807(-2^63 - 1); 默认值是0L; 主要用在需要比较大的整数系统上;

浮点类型

float:单精度浮点类型

单精度,32位符合IEEE754标准的浮点数;可在存储大型浮点数组是节省内存空间;默认值是0.0f;不能用来表示精确的数,如货币;

double:双精度浮点类型

双精度,位符合IEEE754标准的浮点数;浮点数的默认类型为double类型;默认值是0.0d;不能用来表示精确的数,如货币;

布尔类型(默认为false)

truefalse

字符类型

char 是单一的16位Unicode字符最小值是*\u0000*(即为0);最大值是*\uffff*(即为65,535);char类型可以存储任何字符;

基本数据类型转换

自动类型转换(隐式转换)

如果数据相互兼容并且要转换的数据类型的范围大于原数据类型,当发生赋值时,会自动进行数据转换。

数值类型转换:byte >> short >> int >> long >> float >> double 字符型转整型:char >> int

例:

byte b = 50; b = b * 2;

这里我的理解是:b是byte型,而2是int型,他们两个相乘, 这时操作数b(b * 2 的 b)发生了自动类型转换变成了int型,所以b * 2的结果也是int型,而接受b * 2的变量b还是byte型所以会报错。相当于让一个杯子装一缸水,杯子当然不乐意。

强制类型转换(显性转换)

当不满足自动类型转换的条件时,若想要进行数据类型转换时,则需要使用强制类型转换。

(type)variableName //当要转换的目标是一个表达式时语言将表达式用括号括起来

还是刚才的题目:

byte b = 100; b = (byte)(b * 2); //注意byte型数据的容量

这时的 b * 2 的结果依然是int型,当我们通过 (byte) 进行了强制类型转换,将 32位的int型数据转换为 8位的byte型数据。

最新回复(0)