java的数据类型
- byte:在内存里占8位;表数范围是-128(-2^7)~127(2^7-1)
- short:在内存里占16位;表数范围是-32768(-2^15)~32767(2^15-1)
- int:在内存里占32位;表数范围是-2147483648(-2^31)~2147483647(2^31-1)
- long:在内存里占64位;表数范围是(-2^63)~(2^63)
- float(单精度浮点型):在内存里占32位;
- double(双精度浮点型):在内存里占64位;
(注:字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也在一些计算机编程语言中表示数据类型和语言字符——百度百科的。。。
表数范围:能表示的数的范围
单精度浮点型和双精度浮点型的更深入区别:https://www.zhihu.com/question/26022206)
基本类型的类型转换
- java的所有数值类型变量可以相互转换;表数范围小的数值类型变量转为大的数值类型变量时,系统可以自动转换;
- 表数范围大的数值类型变量转为小的数值类型变量时,则需要我们强行转换;
可以看出a变量因为超出表数范围所以报错了,
在进行强行转换后就不会报错了,不过强行转换会导致精度损失(一个大桶里装满了水,把水倒到小桶去,小桶装不下那么多水就会溢出)