java中的8种基本数据类型:byte,short,char,int,long,float,double,boolean。
byte 1 个字节,取值范围:-128~127, 8 位;
short 2 个字节,取值范围:-2^15~2^15-1, 16 位;
char 2 个字节;
int 4 个字节, 取值范围:-2^31~2^31-1, 32 位;
long 8 个字节,取值范围:-2^63~2^63 -1, 64 位;
float 4 个字节,取值范围:-3.403E38~3.403E38;
double 8 个字节,取值范围:-1.798E308~1.798E308;
boolean 1个字节 取值范围:true或者false。
package sort;
public class Conversion {
public static void main(String[] args) {
int a = 5;
int b = 10;
double c = 5.0;
double d = 10.0;
int aa = b / a;
double bb = b / a;
int cc = (int) (d / c);
System.out.println("aa=" + aa);
System.out.println("bb=" + bb);
System.out.println("cc=" + cc);
}
}
结果:
aa=2
bb=2.0
cc=2
结论:
aa = b / a;因为aa,a和b都是int类型不需要转换。
bb= b / a;因为bb是double类型的而a 和b 都是int类型的所以要把a / b 的结果转换成double类型的,
又因为int类型的容量没有double类型的大所以可以直接转换,为隐式转换。
cc = d / c;因为cc为int类型的而d和c都是double类型的,所以要把d / c的结果转换成int类型的,
又因为int类型的容量小所以要用强转。尤其要注意在强转的时候所有要转换的类型必须加上小括号。
总结:
1)容量小的转换成容量大的要进行隐式转换;
2)容量大的转换成容量小的要进行强制转换,要加上强制转换符;
3)byte,short,char之间不会互相转换,并且三者在计算的时候首先转换成int类型;
4)实数常量默认为double类型,整数常量默认为int类型。