数据类型转换
1.自动类型转换
public class type_change{
public static void main(String[] args){
double a = 4;//对a的赋值是整数,但是最后自动转换为浮点型数
System.out.println(a);
}
}
2.自动类型转换(反例)
public class type_change{
public static void main(String[] args){
int a = 4.0;
System.out.println(a);
}
}
3.数据类型的自动转换从占用内存小的小向占用内存大的自动转换:
4.强制类型转换
从占用内存较大的数据类型转为占用内存较小的数据类型
1.格式:
目标数据类型 目标变量 = (目标变量数据类型)原变量
例1、
public class type_change_plus{
public static void main(String[] args){
double num = 1;
int a;
a = (int)num; //强制类型转换
System.out.println(a);//输出结果是1
}
}
例2、
public class type_change_plus{
public static void main(String[] agrs){
int a = 4;
short b = (short)a; //格式1
byte c = (byte)(4); //格式2
System.out.println(b);
System.out.println(c);
}
}
5.char类型的转换
1.char类型的数据转换为int类型是根据ASCII码表进行计算的
public class char_change{
public static void main(String[] args){
char ch1 = 'a';//在ASCII码表中所对应的十进制数为97
System.out.println(ch1); //输出 a
int num = ch1;
System.out.println(num); //输出 97
}
}
2.char类型的数据转换为浮点型是根据ASCII码表进行计算的,然后将int类型自动转换为double类型**
public class char_change{
public static void main(String[] args){
char ch1 = 'a';
System.out.println(ch1);
double num = ch1; //转换为double类型
System.out.println(num); //输出结果是97.0
}
}
3.char类型转为byte、short类型需要进行强制转换
例1(进行强制类型转换)
public class char_change{
public static void main(String[] args){
char ch1 = 'a';
System.out.println(ch1);
short num = (short)ch1;
System.out.println(num);
}
}
例2(没有进行强制类型转换)
public class char_change{
public static void main(String[] args){
char ch1 = 'a';
System.out.println(ch1);
short num = ch1;
System.out.println(num);
}
}
ASCII码表
6.boolean类型不能与其他类型进行强制类型转换
例(即使进行强制类型转换也不行)
public class boolean_change{![在这里插入图片描述](https://img-blog.csdnimg.cn/20200623113133733.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDE0Mjcy,size_16,color_FFFFFF,t_70)
public static void main(String[] args){
boolean T = true;
int a = (int)T; //试图强制类型转换
System.out.println(T);
System.out.println(a);
}
}