数据类型:
JAVA提供了最基本的数据类型,一共四类八种。除了这些基本类型,其余的类型全部为引用类型。
逻辑型-boolean
文本型-char
整数型-byte,short,int,long
浮点数型-float,double
类型转换:
1.Byte short char之间不会互相转换,可以先转换为int类型在进行相互转换
2.容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出
3.多种类型进行运算时,先转换为大的那种。
4.实数常量(如:1.2)默认为double
5.整数常量(如:123)默认为int
强制转换:(float)((i1+i2)*1.2);在JAVA中,目的类型数的范围比源类型的范围大,那么将自动转换。如果目的类型数的范围比源类型的范围小,那么将进行强制转换。但是在进行转换过程中可能会出错。
比如:当值257被强制转换为byte变量时,其结果是257除以256(256是byte类型的变化范围)的余数1。
当double类型带小数被转换为整形而不溢出时,则会舍去小数点后面的数字。
JAVA执行过程:
练习和答案:
public class TestConvert
{
public static void main(String args[])
{
int i1 = 123;
int i2 = 456;
double d1 =(i1+i2)*1.2;//系统将转换为double型运算
float f1 = (float)((i1+i2)*1.2);//需要加强制转换符
byte b1 = 67;
byte b2 = 89;
byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需要强制转换符
System.out.print(b3);
double d2 = 1e200;
float f2 = (float)d2;//会产生溢出
float f3 = 1.23f;//必须加f
long l1 = 123;
long l2 = 200000000000L;//必须加l
float f = l1+l2+f3;//系统将转换为float型计算
long l = (long)f;//强制转换会舍去小数部分
}
}
Void public method() { Int I =1,j; Float f1 =0.1; Float f2 = 123; Long l1 = 12345678,l2=8888888888; Double d1 = 2e20,d2=124; Byte b1 = 1,b2=2,b3=129; j=j+10; i=i/10; i=i*0.1; Char c1 = 'a',c2=125 ;//没问题 Byte b = b1-b2; //int转换为byte出错 Char c = c1 + c2-1; Float f3 = f1+f2;//没问题 Float f4 = f1+f2*0.1;//有问题 double转float强制转换 Double d = d1*i+j;//没问题 Float f =(float)(d1*5+d2);//没问题 }