整数型(P39)
基本数据类型 占用空间大小 默认值 取值范围
----------------------------------------------------------
byte 1 0 -128 ~ 127
short 2 0 -32768 ~ 32767
int 4 0 -2147483648 ~ 2147483647
long 8 0L
- 注意:在Java中,整数字面值被默认当做int类型处理。
- 当给long型变量赋值时,如果整数字面值的大小没有超出int型的取值范围,系统会将整数字面值默认的int类型转化为long类型(会自动将小容量向大容量转换)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/09fd2a79246d4d0a82d388b7509391e1.png#pic_center)
- 当给long型变量赋值时,如果整数字面值的大小超出int型的取值范围,编译会报错。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/140fc3efaebb4e92afc252299c45163b.png#pic_center)
- 在整字面值的后面加L/l,就可以将整数字面值默认的int类型转化为long类型,解决上述问题。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d2ec4379095045c59a346d4fe10ff730.png#pic_center)
- 在Java中,整数字面值的三种表示方式:
- 十进制:系统缺省默认的方式
- 八进制:在编写八进制整数字面值时,需要以0开头
- 十六进制:在编写八进制整数字面值时,需要以0x开头
- 无论是十进制、八进制、十六进制,都是以十进制的形式输出。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1b02cd3ce6d64982b76df2912755951f.png#pic_center)
强制类型转换(P40)
- 自动转换机制:系统会自动将小容量类型向大容量类型转换。例如,int型变量自动转换为long变量
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5cbf122069df450fbd3ddb12d58ca8ec.png#pic_center)
- 注意:大容量类型直接向小容量类型转换时,编译会报错
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f1edde18ad8845428e7ac8b2216f1eac.png#pic_center)
- 强制类型转换:当大容量类型向小容量类型转换时,使用强制类型转换语法
(小容量的类型)大容量类型的类型
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6c8f899d46a34595bf6762bfdda866f5.png#pic_center)
- 强制类型转换的原理:将大容量变量的数据以二进制的表示,根据小容量的大小,去除前面的,保留后面的。这可能会造成精度的丧失!
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c7b2d5dbd9314f10aaf35e0b4650921b.png#pic_center)
- 例外情况:当小容量类型是bype,且大容量的数值没有超出bype的取值范围时,不会报错。但是当大容量的数值超出bype的取值范围时,则会报错。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f28ac228c4a942a19542aaa84fdb6c25.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d6576e3df362459bb931fa592d88fa3c.png#pic_center)