8种基本数据类型和运算(隐式转换和强制转换)

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类型。

 

 

你可能感兴趣的:(8种基本数据类型和运算(隐式转换和强制转换))