俩种:
1.自动类型转换(隐式转换)
不同类型的数据进行混合运算时(包括赋值)java会自动进行数据类型转换(想表示范围大的方向转换)而不放声错误。
转换规则:boolen类型不允许转换为其他类型
byte,short,char相互运算时,会宁县转换为int形
int ,long,float和double在混合运算时,数据类型会隐式转换为隐式转换
数据类型转换方向为:
byte,short,char-int -long-float-double
---------------
public class Test {
public static void main(String args[]){//主方法,格式是固定的
short st=30;//声明short类型变量st ,初始值为30
int i=10,it=0;//声明int类型变量i,it,初始值10和0
System.out.println("赋值前==i="+i);
it=st;//把人short赋值给int类型
//以下,short和int 类型左加法运算时,short会自动转为int 类型做计算,计算结果赋值给i
i=st+i;
System.out.println("赋值后==i="+i);
System.out.println("赋值后==it="+it);
}
}
----
结果:
赋值前==i=10
赋值后==i=40
赋值后==it=30
----
2.强制转换
如果标识大范围大的数据行向范围小的数据类型方向转换,则需要使用强制类型转换(显示转换)。即图2-4从右向左数据类型转换时,需要强制转换(强制转换可能给会造成精度损失)
(目标类型的值)值
其中:
目标类型;准备转换成的数据类型
值:原数据
---
演示代码
public class Test {
public static void main(String args[]){//主方法,格式是固定的
double d =1222.432;//声明double类型并赋值
int i=1;//声明int 形并赋值
int k=(int)(i+d);//做混合运算把double类型强制转换成int类型
System.out.println("赋值后==k="+k);
}
}
---结果是:
1223
----
实例演示char 类型转换为与int类型的相互转换
public class test{
public atatic void main(String [] args){
int i=1;
int ise=8;
char c='A';
int ith=c+i;
char cse=(char)(c+ise);
System.out.prinln("char 类型cse="+cse);
System.out.println("int 类型 ith="+ith);
}}
---结果
char类型cse=I
int 类型 ith=66