1、自动类型转换隐式1.1 语法自动类型转换就是将小范围类型的数据赋值给大范围类型的变量。赋值过程中编译器会自动完成转换而不需要我们做任何处理。1.2 转换规则链1.2.1 byte → short、int、long、float、doublepackagecom.qxt.src.chapt9.code1_2_1;publicclassExample{publicstaticvoidmain(String[]args){bytebyteNumber100;System.out.println(byteNumber: byteNumber);shortshortNumberbyteNumber;System.out.println(shortNumber: shortNumber);intintNumberbyteNumber;System.out.println(intNumber: intNumber);longlongNumberbyteNumber;System.out.println(longNumber: longNumber);floatfloatNumberbyteNumber;System.out.println(floatNumber: floatNumber);doubledoubleNumberbyteNumber;System.out.println(doubleNumber: doubleNumber);}}1.2.2 short → int、long、float、doublepackagecom.qxt.src.chapt9.code1_2_2;publicclassExample{publicstaticvoidmain(String[]args){shortshortNumber100;System.out.println(shortNumber: shortNumber);intintNumbershortNumber;System.out.println(intNumber: intNumber);longlongNumbershortNumber;System.out.println(longNumber: longNumber);floatfloatNumbershortNumber;System.out.println(floatNumber: floatNumber);doubledoubleNumbershortNumber;System.out.println(doubleNumber: doubleNumber);}}1.2.3 char → int、long、float、doublepackagecom.qxt.src.chapt9.code1_2_3;publicclassExample{publicstaticvoidmain(String[]args){charcharNumberA;System.out.println(charNumber: charNumber);intintNumbercharNumber;System.out.println(intNumber: intNumber);longlongNumbercharNumber;System.out.println(longNumber: longNumber);floatfloatNumbercharNumber;System.out.println(floatNumber: floatNumber);doubledoubleNumbercharNumber;System.out.println(doubleNumber: doubleNumber);}}1.2.4 int → long、float、doublepackagecom.qxt.src.chapt9.code1_2_4;publicclassExample{publicstaticvoidmain(String[]args){intintNumber100;System.out.println(intNumber: intNumber);longlongNumberintNumber;System.out.println(longNumber: longNumber);floatfloatNumberintNumber;System.out.println(floatNumber: floatNumber);doubledoubleNumberintNumber;System.out.println(doubleNumber: doubleNumber);}}1.2.5 long → float、doublepackagecom.qxt.src.chapt9.code1_2_5;publicclassExample{publicstaticvoidmain(String[]args){longlongNumber1000000000000L;System.out.println(longNumber: longNumber);floatfloatNumberlongNumber;System.out.println(floatNumber: floatNumber);doubledoubleNumberlongNumber;System.out.println(doubleNumber: doubleNumber);}}1.2.6 float → doublepackagecom.qxt.src.chapt9.code1_2_6;publicclassExample{publicstaticvoidmain(String[]args){floatfloatNumber3.14f;System.out.println(floatNumber: floatNumber);doubledoubleNumberfloatNumber;System.out.println(doubleNumber: doubleNumber);}}2、强制类型转换显式2.1 语法强制类型转换就是大范围类型数据转换为小范围类型变量。需要手动加 (目标类型) 可能丢失精度、溢出、变负数。[目标类型][变量](目标类型)原值;引用类型同样适用后续章节介绍2.2 转换规则链2.2.1 double → float、long、int、short、byte、charpackagecom.qxt.src.chapt9.code2_2_1;publicclassExample{publicstaticvoidmain(String[]args){doubledoubleNumber100.0;System.out.println(doubleNumber: doubleNumber);floatfloatNumber(float)doubleNumber;System.out.println(floatNumber: floatNumber);longlongNumber(long)doubleNumber;System.out.println(longNumber: longNumber);intintNumber(int)doubleNumber;System.out.println(intNumber: intNumber);shortshortNumber(short)doubleNumber;System.out.println(shortNumber: shortNumber);bytebyteNumber(byte)doubleNumber;System.out.println(byteNumber: byteNumber);charcharNumber(char)doubleNumber;System.out.println(charNumber: charNumber);}}2.2.2 float → long、int、short、byte、charpackagecom.qxt.src.chapt9.code2_2_2;publicclassExample{publicstaticvoidmain(String[]args){floatfloatNumber100.0f;System.out.println(floatNumber: floatNumber);longlongNumber(long)floatNumber;System.out.println(longNumber: longNumber);intintNumber(int)floatNumber;System.out.println(intNumber: intNumber);shortshortNumber(short)floatNumber;System.out.println(shortNumber: shortNumber);bytebyteNumber(byte)floatNumber;System.out.println(byteNumber: byteNumber);charcharNumber(char)floatNumber;System.out.println(charNumber: charNumber);}}2.2.3 long → int、short、byte、charpackagecom.qxt.src.chapt9.code2_2_3;publicclassExample{publicstaticvoidmain(String[]args){longlongNumber1000000000L;System.out.println(longNumber: longNumber);intintNumber(int)longNumber;System.out.println(intNumber: intNumber);shortshortNumber(short)longNumber;System.out.println(shortNumber: shortNumber);bytebyteNumber(byte)longNumber;System.out.println(byteNumber: byteNumber);charcharNumber(char)longNumber;System.out.println(charNumber: charNumber);}}2.2.4 int → short、byte、charpackagecom.qxt.src.chapt9.code2_2_4;publicclassExample{publicstaticvoidmain(String[]args){intintNumber100;System.out.println(intNumber: intNumber);shortshortNumber(short)intNumber;System.out.println(shortNumber: shortNumber);bytebyteNumber(byte)intNumber;System.out.println(byteNumber: byteNumber);charcharNumber(char)intNumber;System.out.println(charNumber: charNumber);}}2.2.5 short → byte、charpackagecom.qxt.src.chapt9.code2_2_5;publicclassExample{publicstaticvoidmain(String[]args){shortshortNumber100;System.out.println(shortNumber: shortNumber);bytebyteNumber(byte)shortNumber;System.out.println(byteNumber: byteNumber);charcharNumber(char)shortNumber;System.out.println(charNumber: charNumber);}}2.2.6 byte → short、charpackagecom.qxt.src.chapt9.code2_2_6;publicclassExample{publicstaticvoidmain(String[]args){bytebyteNumber100;System.out.println(byteNumber: byteNumber);charcharNumber(char)byteNumber;System.out.println(charNumber: charNumber);}}2.2.7 char → short、byte无符号char和有符号short、byte是两种完全不同的类型必须进行强转。packagecom.qxt.src.chapt9.code2_2_7;publicclassExample{publicstaticvoidmain(String[]args){charcharNumberA;System.out.println(charNumber: charNumber);bytebyteNumber(byte)charNumber;System.out.println(byteNumber: byteNumber);shortshortNumber(short)charNumber;System.out.println(shortNumber: shortNumber);}}章节预告 —— 算术运算符