1.整形数据类型划分
一共有四种(小到大):byte、short、int、long子啊Java中都时int型
int x = 10;//定义一个整型变量x,10不会变但是x是变量是可以改变
int 变量 * int变量 = int 变量
2.任何数据类型都有其可以保存的范围
1).
int max = Tnteget.MAX_CALUE获取int最大值//2147483647
int min = Tnteget.MIN_CALUE获取int最小值//-2147483648
max + 1 = -2147483648 //int变量+int常量 = int型计算结果
max + 2 = -2147483647
min - 1 =2147483647 //int型变量 - int型常量 = int计算结果
2).超过处理范围会循环,被称为数据溢出,解决法案:使用更大的数据类型
long max = Tnteget.MAX_CALUE获取int最大值//2147483647
long min = Tnteget.MIN_CALUE获取int最小值//-2147483648
max + 1 = 2147483648 //long型变量 + int常量 = long型计算结果
min - 1 = -2147483649 //long型变量 - int常量 = long型计算结果
也可以在常量上处理,默认常量int型,可以追加字母L,或强制转换成long型
int max = Tnteget.MAX_CALUE获取int最大值//2147483647
int min = Tnteget.MIN_CALUE获取int最小值//-2147483648
max + 1L = -2147483648 //int变量 + long常量 = long型计算结果
max + 2L = -2147483649
(long)min - 1 =2147483649 //long型变量 - int常量 = long型计算结果
**注意**:范围数据类型小的自动转换成大的;范围大的需要强制转换成小的但是同时要考虑可能带来的数据溢出
例:
long mun = 2147483649; //超过int范围
int temp = num;//long范围不int范围大,不能够直接转换
结果:无法显示
int temp = (long)num;
结果:-2147483647 / /数据溢出
所以强制转换一般不用。
- byte类型(范围-128~127) 例:
byte num = 10 ;
num * num
结果100;
如果 num = 20;
结果:400
但是 byte rs = num * num;
结果:无法执行 //已经溢出
解释:;正常来讲Java程序里面20是int型,但是在为byte赋值时并没有因为是int型而发生强制转换,因为Java对byte做了特殊处理,即:如果没有超过byte范围的常量可以自动有int变为byte,如果超过就必须进行强制转换,但是数据会溢出,如:byte
num = 200;结果:-56
;200已经超过byte范围为,所以溢出。注意:对于常量可以自动适配转换,但是对于变量必须使用强制转换。