前言.
无论是在那种操作系统下,所有类型都是有符号的类型。所有的类型所占的字节都是一致的,不会因为系统位数不同而导致字节大小不同。整形默认int,浮点类型默认double。
一.字节类型
byte类型的变量占一个字节的大小。他的取值范围是-128~127.(他的这个取值范围是根据他的二进制序列来计算的,一个btye占据8个比特位就是8个二进制位,但是第一位是符号位,不计入计算,所以就是-2^7~2^7-1,减去1是因为0算入了正数的部分),其中byte的包装类型是Byte.
在IDEA上的看到的就是这样的。
二.短整型
短整型的占两个字节,范围计算的方法和上述相同就不在意义赘述啦。其中短整型的范围是:-32768 ~ 32767。短整型是short,他的包装类型是Short。
三.整形
整形占四个字节,范围计算是-2^31~2^31-1.int类型的包装类型是Integer.
四.长整型
长整型占八个字节,范围是-2^63~2^63-1.long类型的包装类型是Long.其中对于long类型的数据我们会在他的数据后面加一个大写的L。例如:long a = 10L;(不用小写是因为l如果和数字看混淆).
五.单精度浮点型
float占4个字节,在工程里面用的都比较少,一般都是优先考虑double类型的数据,他的包装类型是Float。
六.双精度浮点型
double类型占8个字节,其中我们计算的时候不能这样:
这样计算的是0,因为这是int类型的计算而不是double。
这样计算才可以正确的算出小数。
其中浮点数的计算也是具有误差的,例如:
他并不是1.21,所以这是一个很神奇的事情,也可以让我们知道浮点数是具有误差的。
double的包装类型是Double。
七.字符型
字符类型是占两个类型的,所以在java种可以打印文字,比如说:
char类型的包装类型是Character。
八.布尔类型
波尔类型并没有明确规定是几个字节,毕竟,他的值不是true就是false,就这两个。他的变量一般都是 boolean val = true;他的包装类型是Boolean。需要注意的是,true就是true,false就是false,并没有C语言中所谓的0位假,非0位真的说话,大家一定要记住哈,
九.类型转换
1.自动类型的转换(隐式)
意思就是代码不需要进行处理,在编译的时候就会自行处理。一般都是小类型变为大类型的数据的时候,因为小类型变大类型数据时不会造成数据的丢失。
2.强制类型的转换(显式)
进行操作时,代码需要进行一定的格式化处理,代码才能进行。一般都是大数据范围变成小数据范围的数据,这样转化的话,可能会造成数据的丢失,就不安全。
需要注意的是,大类型数据变成小类型数据可能会有精度的丢失,还有就是不是所有的类型之间都可以相互的强制转换,比如说布尔类型就是不可以滴,需要大家注意哦.
其中byte和byte之间的计算编译器会报错,因为计算机的CPU是通过最低的4个字节来计算的,而低于的类型都是变成默认类型计算,如果byte就是变成int类型来进行计算的,计算之后不能用byte来直接接收这个数据,因为这个数据的类型是int而不是byte,因此如果用byte类型的变量来接收这个数据的话,就需要进行强制类型的转化啦。
总结
以上就是小编对java基本数据类型的理解,如果小编有写错的地方希望大家帮小编纠正哦,谢谢大家的观看。