[table]
|数据类型|内存空间|取值范围|表示数值个数|备注
|byte|8位(1个字节)|-128~127|256|运算时自动提升为int
|short|16位(2个字节)|-32768~32767|65536|运算时自动提升为int
|char|16位(2个字节)|0~65535|65536|运算时自动提升为int
|int|32位(4个字节)|-2147483648~2147483647|42亿
|long|64位(8个字节)|-9223372036854775808~9223372036854775807|1844亿亿|值后面加L或l
|float|32位(4个字节)|1.4E-45~3.4028235-E38|*|值后面加F或f
|double|64位(8个字节)|4.9E-324~1.7976931348623-E308|*|*
|boolean|16位(2个字节)|true,flase|2|*
[/table]
byte、short、char进行运算的时候自动类型提升为int,如果再赋值给他们这些类型的变量则需要强制类型转换,如果超出他们的最大值则会出现溢出现象。
一个整数常量赋值给long类型的变量时,要在数值后面添加L或l,否则默认的为int类型的数据,在计算的时候出现溢出现象如:
long n = 2147483647*2;
System.out.println(n);
输出的n值为-2
因为在int范围内计算2147483647*2出现了溢出,然后将溢出后的int类型的数值-2赋值给long类型的n,所以出错了,解决办法可以在其中一个数据常量后面添加L或者l,这样他们就在long类型数据范围内进行计算。
一个数值常量赋值给float类型的变量时,要在数值后面添加F或f,否则默认为double类型的数据。
赋值运算:首先程序计算等号右边的算式,计算的时候根据右边式子的变量情况进行计算,计算得到结果后然后向左边的变量进行赋值,如果变量的范围扩大则自动提升,若变量的范围缩小则需要进行强制类型装换。
|数据类型|内存空间|取值范围|表示数值个数|备注
|byte|8位(1个字节)|-128~127|256|运算时自动提升为int
|short|16位(2个字节)|-32768~32767|65536|运算时自动提升为int
|char|16位(2个字节)|0~65535|65536|运算时自动提升为int
|int|32位(4个字节)|-2147483648~2147483647|42亿
|long|64位(8个字节)|-9223372036854775808~9223372036854775807|1844亿亿|值后面加L或l
|float|32位(4个字节)|1.4E-45~3.4028235-E38|*|值后面加F或f
|double|64位(8个字节)|4.9E-324~1.7976931348623-E308|*|*
|boolean|16位(2个字节)|true,flase|2|*
[/table]
byte、short、char进行运算的时候自动类型提升为int,如果再赋值给他们这些类型的变量则需要强制类型转换,如果超出他们的最大值则会出现溢出现象。
一个整数常量赋值给long类型的变量时,要在数值后面添加L或l,否则默认的为int类型的数据,在计算的时候出现溢出现象如:
long n = 2147483647*2;
System.out.println(n);
输出的n值为-2
因为在int范围内计算2147483647*2出现了溢出,然后将溢出后的int类型的数值-2赋值给long类型的n,所以出错了,解决办法可以在其中一个数据常量后面添加L或者l,这样他们就在long类型数据范围内进行计算。
一个数值常量赋值给float类型的变量时,要在数值后面添加F或f,否则默认为double类型的数据。
赋值运算:首先程序计算等号右边的算式,计算的时候根据右边式子的变量情况进行计算,计算得到结果后然后向左边的变量进行赋值,如果变量的范围扩大则自动提升,若变量的范围缩小则需要进行强制类型装换。