类型转换

复制代码
 1 public class Demo03 {
 2     public static void main(String[] args) {
 3         /*
 4         * 由于java是强类型语言,所以有时要用到类型转换
 5         * 低------------------------------------->高
 6         * byte,short,char->int->long->float->double
 7         * 
 8         * 运算中,不同数据类型的数据要先转化为同一类型,然后进行运算
 9         * 布尔值不能转换
10         * 强制转换的时候可能存在内存溢出或者精度问题!
11         * */
12         int a=12;
13         byte b=(byte)a;
14         System.out.println(a); //12
15         System.out.println(b); //12
16 
17         int c=1111;
18         byte d=(byte)c;
19         System.out.println(c); //1111
20         System.out.println(d); //87
21         // 这里,之所以没有输出1111,是因为存在内存溢出问题,byte值是-127-128,超出的话会有错误
22         int money=10_0000_0000;
23         int year=20;
24         long total=money*year;
25         System.out.println(total); //-1474836480
26 
27         long total1=money*((long)year);
28         System.out.println(total1); //20000000000
29         /*
30         *   上面的问题所在就是:
31         *   第一个是都以int的形式算完了,计算的时候已经溢出了,自然会报错
32         *   第二个是运算时就转换成了long,容量足够大,没有溢出
33         * */
34         System.out.println("--------------------------------------------------");
35         //以下根据Unicode表来对应的,所有字符本质还是数字
36         char z='a'; //字符型
37         int s=z+1; //整数型
38         System.out.println(s); //98
39         System.out.println((char)s); //b
40 
41         //强制转换不会四舍五入,直接抹去小数位
42         System.out.println((int)1.88); //1
43         System.out.println((int)-1.88); //-1
44 
45     }
46 }
复制代码

 下面的这个更通俗易懂

复制代码
 1 package base;
 2 
 3 public class Demo05 {
 4     public static void main(String[] args) {
 5         //自动类型转换-->把一个范围小的数值或变量赋给另外一个表示数据范围大的变量
 6         short smart=10;
 7         int num=smart; //这里,int比short范围更大,所以自动转换
 8 
 9         double d=10;
10         System.out.println(d); //10.0 这里因为10是int型,double比int大,能盛得下,所以自动转换了
11 
12         //强制类型转换-->把一个范围大的数值或变量赋给另外一个表示数据范围小的变量
13         int large=10;
14         short num1=(short) large; //这里,因为变量是int,比short大,short无法接受,所以需要转换成short同级别或者比它小的
15 
16         double xiaoshu=8.88;
17         int number=(int) xiaoshu;
18         System.out.println(number); //8
19     }
20 
21 
22 
23 
24 }
复制代码

 

posted @   周周周777  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示