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 }
标签:类型转换,int,System,long,println,byte,out From: https://www.cnblogs.com/vv-77/p/17050873.html