.低级到高级的自动类型转换;
例如:short a=10;
int b=20;
System.out.print(a+b);输出结果会是 int类型的。
2.高级到低级强制类型转换(会导致溢出或丢失精度);
例如: long a=10;
int b=(int)a;
System.out.print(b);
注:
- 对于byte ,short, char,这三种类型而言,他们是平级的,不能相互自动转换可以使用上面的强制类型转换。
- 不能在布尔值和任何数字类型间强制类型转换。
- 不同级别数据类型间的强制转换,可能会导致溢出或丢失精度
- 当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。
例如:byte b=3;
b=(byte)(b*3);//必须声明byte
- 基本类型向类类型转换;
1)正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
- 反向转换:通过类包装器来转换
int b=a.intValue();
通过类包装器——>基本数据类型
eg1:int i=Integer.parseInt(“123”)
说明:此方法只能适用于字符串转化成整型变量
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Bolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数
- 基本类型向字符串的转换;
正向转换如下:
System.out.print(""+2+3);// “""”把2转成字符串操作;
System.out.print(2+3); //不存在转换。
System.out.println(2+3+"");//前两个数值相加后,被“""”转成字符串。
System.out.println(2+""+3);//同第一个。
输出显示为:(String)23,(int)5,(String)5,(String)23
5.类类型向字符串转换;
正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()来转换。
反向转换:通过类包装器new出一个新的类类型的变量
例题
public class Demo03
{public static void main(String[] args)
s{
int age = 18;
age = 19;
System.out.println(age);
//错误:已在方法main(String[])中定义了变量age 不能重复定义
//int age = 20;
//错误:不兼容的类型:从double转换到int可能会造成损失
//int number = 3.3;
double num = 3.3;
System.out.println(num);
//从int类型转换到double类型是自动转换
double num2 = 3;
System.out.println(num2);//3.0
// 错误: 不兼容的类型: 从int转换到byte可能会有损失
//byte b = 130;
//System.out.println(b);
long bigNum = 4L;
//错误:不兼容类型:从int转换到long类型可能会造成损失
//int big = bigNum;
System.out.println(bigNum);
double d = 3.3221332;
System.out.println(d);
//基本数据类型的强制换行
int d_Num = (int)d;
System.out.println(d_Num);
}
}