类型转换
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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具