Java中有8中基本的数据类型,分别是byte,short,int,long,float,double,char,bpplean。
如下图:

在Java中不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节整形和浮点型都是带有符号的整型默认为int型,浮点型默认为double。
其中字节的包装类型为Byte ,short的包装类型为Short,int的包装类型为Integer,long的包装类型为Long,float的包装类型为Float,double的包装类型为Double,char的包装类型为Character,boolean的包装类型为Boolean。
在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式)和强制类型转换(显式)。
eg:
short s = 100;
int i = 10;
i = s; // s和i都是整形,s范围小,i范围大,当将s赋值给i时,编译器自动会将s提升为int类型,然后赋值
s = (short)i; // int的范围比short范围大,会有数据丢失,不安全,需要强制转换,否则编译失败
注意:
由于计算机的 CPU 通常是按照4个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte和short这种低于 4 个字节的类型, 会先提升成 int, 再参与计算。
eg:
short a = 10;
short b = 20;
short c = a + b;
上述代码虽然short和short都是相同类型, 但是出现编译报错. 原因是, 虽然a和b都是short, 但是计算 a + b 会先将a和b都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误。

被折叠的 条评论
为什么被折叠?



