JAVA数据类型转换

/*自动转换类型(隐式)
* 数据类型不一样时,会发生数据类型转换
* 1. 特点:代码不需要特殊处理,自动转换
* 2.规则:数据范围从小到大
*/

 1 public class DemoDataType {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         System.out.println(1024); // 这是一个整数,默认 int 类型
 6         System.out.println(3.14); // 这是一个浮点数,默认 double 类型
 7         
 8         
 9         
10         //左边是long类型,右边默认int类型
11         // int -->long 符合数据范围从小到大
12         //这一行代码发生了自动类型转换
13         long num1 = 100;
14         System.out.println(num1);// 100
15         
16         
17         //左边是double类型,右边是float类型
18         //float-->double 符合数据范围从小到大
19         //发生自动类型转换
20         double num2 = 3.14F;
21         System.out.println(num2);//3.14
22         
23         
24         //左边float类型,右边long类型
25         //long-->float 符合数据范围从小到大
26         //发生自动类型转换
27         float num3 = 30L;
28         System.out.println(num3);//30
29         
30     }
31 
32 }

/*强制类型转换
* 1.特点:代码需要进行特殊的格式处理,不能自动完成
* 2.格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据
*
* 注意事项:强制转换一般不推荐使用,可能发生精度损失,数据溢出
*/

 1 //左边是int类型,右边是long类型
 2         //long-->int,数据类型不是从小到大
 3         //不能发生自动类型转换
 4         //范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据
 5         int num4 = (int) 100L;
 6         System.out.println(num4);//100
 7         
 8         
 9         
10         //long强制转换成int类型
11         int num5 = (int) 6000000000L;
12         System.out.println(num5);//1705032704 6000000000的大小超过了int的最大范围,打印输出至int能表示的最大值
13         
14         //float强制转换成int类型
15         int num6 = (int) 4.99F;
16         System.out.println(num6);//4 浮点数表示的4.99强制转换成int后,小数位精度丢失,不会发生四舍五入
17         
18         
19         char zifu1 = 'A';//这是一个字符型变量,是大写字母A
20         System.out.println(zifu1 + 1);//66 A在ASCII码表中代表65
21         //一旦char类型进行了数学运算,那么字符会按照一定的规则翻译成一个数字
22         
23         byte n1 = 40;
24         byte n2 = 50;//右侧范围不能超过左侧
25         
26         int result1 = n1 + n2;
27         System.out.println(result1);//90
28         
29         short n3 = 60;//int转换成short要保证逻辑上的真实大小没有超过short范围,不然数据会溢出
30         short result2 = (short) (n1 + n3);
31         int result3 = n2 + n3;
32         System.out.println(result2);//100
33         System.out.println(result3);//110

 

posted @ 2020-08-19 16:42  余生情指教  阅读(198)  评论(0编辑  收藏  举报