基本数据类型
JAVA中一共有八种基本数据类型,他们分别是
byte、short、int、long、float、double、char、boolean
类型
型别
字节
取值范围
byte
整型
1byte
-27 ~ 27-1
short
整型
2byte
-215 ~ 215-1
int
整型
4byte
-231 ~ 231-1
long
整型
8byte
-263 ~ 263-1
float
浮点型
4byte
3.402823e+38 ~ 1.401298e-45
double
浮点型
8byte
1.797693e+308~ 4.9000000e-324
char
文本型
2byte
0~216-1
boolean
布尔型
1byte
true/false
在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的。如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的。同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。
double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。
浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。
自动类型转换
1)两种类型是彼此兼容的
2)转换后的目标类型占的空间范围一定要大于被转化的源类型
由低字节向高字节自动转换(黑线表示无数据丢失的自动数据转换,红线表示转换中可能发生精度丢失)
强制数据转换
将容纳更多信息的数据类型转换成一个容量更小的数据类型,可能存在精度损失的风险,编译器要求程序员进行强制类型转换。
强制转换过程中可能发生数据溢出,必须警惕。
int a=(int)3.14;
数据类型自动提升
如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。
否则,如果其中一个操作数是float类型,另一个将会转换为float类型。
否则,如果其中一个操作数是long类型,另一个会转换为long类型。
否则,两个操作数都转换为int类型。
参考资料:
1、https://www.cnblogs.com/singlesoar/p/5688915.html
2、https://www.cnblogs.com/skipping/p/5449019.html