辛集市网站建设_网站建设公司_VS Code_seo优化
2026/1/21 16:28:58 网站建设 项目流程

数据类型转换

1. 什么时候会发生类型转换:a.等号左右两边类型不一致时b.不同类型的数据做运算
2.分类:a.自动类型转化将取值范围小的数据类型赋值给取值范围大的数据类型->小自动转大取值范围小的数据类型和取值范围大的数据做运算->小自动转大b.强制类型转换当取值范围大的数据类型赋值给取值范围小的数据类型->需要强转3.基本数据类型中按照取值范围从小到大排序:byte,short,char->int->long->float->double

1.自动类型转换

1.将取值范围小的数据类型赋值给取值范围大的数据类型->小自动转大
2.取值范围小的数据类型和取值范围大的数据做运算->小自动转大public class Demo09DataType{public static void main(string[] args){/*等号右边是整数,整数默认类型是int等号左边是long型的变量将取值范围小的数据类型赋值给取值范围大的数据类型,发生了自动类型转换*/long num1 = 100;System.out.println(num1);int i = 10;double b = 2.5;/*double = int+doubledouble = double+doubleint自动提升为了double,发生了制动类转换*/double sum = i+bSystem.out.println(sum);}
}    

2. 强制类型转换

1.将取值范围大的赋值给取值范围小的数据类型取值范围小的数据类型 变量名 = 取值范围大的数据类型 ->需要强转2.怎么强转:取值范围小的数据类型 变量名 = (取值范围小的数据类型)取值范围大的数据类型public class Demo10DataType{public static void main(string[] args){/*等号右数据类型是小数,小数边默认的类型为double*/float num1 = 2.5;float num = (float)2.5;//有点多余直接float num = 2.5F;就OKSystem.out.println(num1);}}   

3.强制类型转换注意事项

1.不要随意写成强制转换格式,因为会有精度损失问题以及数据溢出现象,除非没有办法
2.byte,short定义时如果等号右边是常量,如果不超出byte和short的范围,不需要我们自己转,jvm自动转换。byte,short如果等号右边有变量参与,byte和short自动提升为int,然后再次赋值给byte,short的变量需要我们自己手动转
3.char类型如果参与运算,会自动提升为int型,如果char类型的字符提升为int型会区ASCII码表中去查询字符对应的int值,如果ASCII没有就回去Unicode(万国表)码表中去找。public class Demo10DataType{public static void main(string[] args){//精度损失int i = (int)2.1;System.out.println(i);/*数据溢出int 型占内存4个字节,4个字节变成二进制是32位100个亿:10 0101 0100 1011 1110 0100 0000 0000     34位二进制100个亿的二进制比int型的二进制多出来2位,此时干掉前面两位0101 0100 1011 1110 0100 0000 0000 = 1410065408*/int j = (int)10000000000L;System.out.println(j);//1410065408System.out.println("======================") byte b = 10;System.out.println(b);b = b+1;System.out.println(b);char c = 'a';System.out.println(c+0);}}  

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询