网站公司做的网站经常打不开,淘宝网站建设方案,美工培训班,购物网站服务中心首先我们要了解java中的数据类型转换是指将一种数据类型转换成另一种数据类型的过程。 什么时候会用到#xff1f;我觉得两种情况会用到
等号左右两边类型不一致#xff08;一般发生在赋值时#xff09;不同类型的数据参与运算#xff08;一般发生在计算时#xff09;
转…首先我们要了解java中的数据类型转换是指将一种数据类型转换成另一种数据类型的过程。 什么时候会用到我觉得两种情况会用到
等号左右两边类型不一致一般发生在赋值时不同类型的数据参与运算一般发生在计算时
转换也分两种
自动隐式类型转换自动一般都出现在小转大时强制类型转换手动一般出现在大转小时
现在我们要记得一个各类型的取值范围的大小详解在另一篇感兴趣的读者可以自行前往查看
小数 整数 字符
double float long int short byte,char小转大
1.赋值时等号两边类型不一致
/*
* 1. 等号两边类型不一致 long int
* 2. int自动转换为long
* */
long l 12;
double d 12.5f;2.计算时参与计算的变量的类型不一致
/*
* a b int float float会自动把小类型转变成大类型然后参与计算
* a b c int float double double
* 计算的过程中Java自动把小类型转换成大类型
* */
int a 1;
float b 1.2f;
double c 1.22;
float e a b;
double f a b;
double g a b c;此外当char参与计算时
/*
* c1 c2 char int int
* chart会转变成int然后参与计算
*/
char c1 A;
int c2 5;
int c3 c1 c2;大转小
取值大范围的数据类型转换为取值小的数据类型
取值范围小的数据类型 变量名 取值范围大的数据类型 - 需要强转
强转语法
取值范围小的数据类型 变量名 (取值范围小的数据类型) 取值范围大的数据类型int 转byte byte b (byte) 12;float 转 double float f (float) 12.2; /*
* float f 12.2; 这句代码会报错你把大的转变成小的需要手动的设置。
* */
float f (float)12.2;
System.out.println(f);/*
* 把计算结果进行强制转换
* 例子 int变量1 int变量2 byte
* */
int a 1;
int b 2;
short c (short) (a b);注意事项 我们需要注意三个场景 把int转成byte有啥问题
数据溢出
把double转为float有啥问题
精度丢失
把float转为int有啥问题
精度丢失
// 1. 数据溢出
byte b (byte)129;
// -127 超出之后从头再开始数
System.out.println(b);// 2. 精度丢失
float f (float) 3.333333335326565;
System.out.println(f); // 3.3333333 精度丢失int i (int) 3.5235f;
System.out.println(i); // 3 精度丢失开发中对于强制类型转换慎用。 byte,short赋值问题:
// byte赋值问题.// 这里本身是一个大转小需要程序员手动转换。但是如果没有超过范围java会自动帮我们强转// 如果超过范围必须手动强转。short同理byte b1 12;byte,short参与运算:
// byte参与计算byte a 1;byte b4 2;// byte参与计算默认会转为int类型byte result (byte) (a b4);char类型参与运算
// 1. char会转为数字。
// 2. 找到char对应的ascii如果ascii中没有会去unicode编码万国码中寻找。然后再计算
// char参与计算System.out.println(雨 0); // 雨对应的unicode码System.out.println(A 0); // A对应的ASCII码