JAVASE中的数据基本类型相关

JAVA中共有8种数据基本类型:byte,short,int,long,以上四种为整数型(初始值为0),
float,double,以上两种为浮点型(初始值为0.0),
char为字符类型(初始值""),boolean布尔类型只有true,false为初始值;
byte 为1个字节,由8位二进制码(bit)组成,范围为-128~127;
short为2个字节(16位),表示范围-2^15~2^15-1;
int 为4个字节(32位),表示范围-2^31~2^31-1;
long 为8个字节(64位),表示范围-2^63~2^63-1;
float(单精度,表示小数) 为4个字节(32位),表示范围10^-38到10^38 和 -10^38到-10^-38,
double(双精度,表示小数) 为8个字节(64位),表示范围10^-308到10^308 和 -10^-308到-10^-308
整数型数值默认为Int类型,浮点型数值默认为double类型,float类型在赋值时候必须以f结束:12.3f,long型必须以L结束:234234l;
以下来自引用:
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。 
数符占1位二进制,表示数的正负。 
指数符占1位二进制,表示指数的正负。 
尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点 
指数存指数的有效数字。 

指数占多少位,尾数占多少位,由计算机系统决定。 
可能是数符加尾数占24位,指数符加指数占8位 -- float. 
数符加尾数占48位,指数符加指数占16位 -- double. 

知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。 

对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)
数值运算:
		int x = 5;
		byte y = 6;
		x = x + y; //此运算正常,x为int,y为byte运算时候,y类型自动提升为int,所以可以赋值给x
		y = x + y;//此运算报错,因为y为byte,y类型自动提升int后,运算结果赋值给y,会丢失精度,所以代码报错 y=(byte)(x+y),必须强制转换



你可能感兴趣的:(JAVASE中的数据基本类型相关)