java中的基本数据类型转换
1.java中的基本数据类型转换
java基本数据类型的转换是需要两个基本事项:
1.boolean型不进行类型转换。
2.Java中基本数据类型按精度从“低”到“高”排列顺序
byte short char int long float double
在上面两个基本事项之下,我们将java的基本数据类型转换分成两种形式:
1.1自动数据类型转换【隐式类型转换】—-把精度低的数据值转换成精度高的数据值。这个转换过程系统自动完成,不需要手动干预,只需要完成赋值就好。
例如:
public class DataTypeSwitch{
public static void main(String args[]){
//把精度低的数据值转换成精度高的数据值—-自动数据类型转换【隐式类型转换】
//系统自动完成,不需要手动干预。
byte byte_valeu=120; //byte 1个字节
int int_value; //int 4个字节
int_value=byte_valeu;
System.out.println(“int_value==”+int_value);
int int_val=1234; // int 4个字节
double double_val=int_val; //double 8个字节
System.out.println(“double_val==”+double_val);
}
}
1.2强制类型转换【显式类型转换】—-把精度高的数据值转换成精度低的数据值。这个过程就需要我们自己手动编写代码来实现。
强制类型转换【显式类型转换】的基本格式:(低级别变量的类型名称)要转换的值【变量名称】
例如:
public class DataTypeSwitch_1{
public static void main(String args[]){
//把精度高的数据值转换成精度低的数据值—强制类型转换【显式类型转换】
//格式:(低级别变量的类型名称)要转换的值【变量名称】
double dou=12.5; //8个字节
int int_val; // 4个字节
int_val=(int)dou; //强制类型转换【显式类型转换】
System.out.println(“int_val==”+int_val); //12
float f=3.14f;
byte b=(byte)f;
System.out.println(“b==”+ b); //3
}
}
2.关于char与int之间的类型转换
- char类型转换成int类型,需要自动数据类型转换【隐式类型转换】。
- int类型转换成char类型,需要强制类型转换【显式类型转换】。
例如:
public class DataTypeSwitch_2{
public static void main(String args[]){
//1. char——>int 自动数据类型转换【隐式类型转换】
char ch=’家’;
int i=ch;
System.out.println(“i==”+i);
//2. int———>char 强制类型转换【显式类型转换】
int i_val=23478;
char ch_val=(char)i_val;
System.out.println(“ch_val==”+ch_val);
}
}
3.表达式的数据类型的自动提升
1.所有的byte型、short型、char型的值被提升为int型。
2.如果一个操作数是long型,计算结果就是long型。
3.如果一个操作数是float型,计算结果就是float型。
4.如果一个操作数是double型,计算结果就是double型。
例如:
public class DataTypeSwitch_3{
public static void main(String args[]){
//1.所有的byte型、short型、char型的值被提升为int型。
byte b_val=120;
short sh_val=1000;
char ch_val=’a’;
//byte提升int
//short提升int
//char提升int
//int val = b_val+sh_val-ch_val;
//2.如果一个操作数是long型,计算结果就是long型。
long l_val=100L;
//long val=b_val+sh_val-ch_val+l_val;
//3.如果一个操作数是float型,计算结果就是float型。
float f_val=100.45f;
//float val=b_val+sh_val-ch_val+l_val+f_val;
//4.如果一个操作数是double型,计算结果就是double型。
double dou=300.5;
double val=b_val+sh_val-ch_val+l_val+f_val+dou;
System.out.println(val);
//在一个表达式中如果有多个不同数据类型的数据,那么这个表达式的结果就是精度最高的数据类型的值。
//在java程序中出现的整数数字都是int型,出现的小数都是double型。
byte by_val=120;
int value= by_val+1000;
System.out.println(value);
int int_value=1234;
double dou_val= int_value+168.5;
System.out.println(dou_val);
}
}
总结:在一个表达式中如果有多个不同数据类型的数据,那么这个表达式的结果的数据类型就是表达式中数据类型精度最高的数据类型决定。
还没有评论,来说两句吧...