1 /*** 2 * 基本数据类型之间的运算规则 3 * 4 * 前提:7中基本数据类型运算 5 * 6 * 1.自动类型提升: 7 * 当容量小的类型与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型 8 * byte、char、short->int->long->float->double 9 * 10 * 特别的byte,char,short,做数据类型运算是,数据类型为int 11 * 12 * 2.强制转换类型:自动类型提升的逆运算 13 * 1.需要使用强转符 14 * 2.可能会导致损失精度 15 * 16 * 17 * 18 */ 19 20 public class HelloWorld{ 21 22 public static void main(String[] args) { 23 // TODO Auto-generated method stub 24 25 char c2 = '\u0043'; //Unicode 字符编码集 26 System.out.println(c2); //C 27 28 byte b1 = 2; 29 int i1 = 12; 30 int i2 = b1+i1; 31 System.out.println(i2); 32 33 float f2 = b1 + i1; 34 System.out.println(f2); 35 36 short s1 = 123; 37 double d1 = s1; 38 System.out.println(d1); 39 40 //********************************* 41 char c1 = 'a'; 42 int i3 = 10; 43 int i4 =c1 + i3; 44 System.out.println(i4); 45 46 47 //强制转换 一下会损失精度 48 double dd1 = 12.9; 49 int ii1 = (int) dd1; 50 51 System.out.println(ii1); 52 53 54 int ii2 = 1000; 55 byte bb2 = (byte)ii2; 56 System.out.println(bb2); 57 58 59 long l1 = 13555; 60 System.out.println(l1); 61 62 //long 12= 1235641346321545; //过大的整数 63 //System.out.println(l2); 64 65 //float f1 = 12.3; //不加f,就失败 了 66 67 68 //整形常量 默认为int 型 69 //浮点型常量 默认为 double 型 70 byte b5 = 12; 71 //byte b6 = b5+1; //编译失败 72 73 //float f6 = b5 +12.3; //编译失败 74 //float f8 = 12.3f; 75 float f9 = b5 + 12.3f; 76 float f7 = b5 +(float)12.3; //这样是可以的 77 78 double f6 = b5 +12.3; 79 System.out.println(f6); 80 System.out.println(f7); 81 System.out.println(f9); 82 83 84 85 86 87 88 89 } 90 91 }