1、转换分为自动转换和强制转换。
自动转换原则:
(1)转换前数据类型与转换后的类型兼容。
(2)转换后的数据类型的表示范围比转换前的大。
各个类型的表示范围:
byte(8/位):-2^(8-1)~2^(8-1)-1
short(16位):-2^(16-1)~2^(16-1)-1
int(32位):-2^(32-1)~2^(32-1)-1
long(64位): -2^(64-1)~2^(64-1)-1
*char(16位):0~255 (注意:没有符号-)
类型转换:
byte short int long float double
char
任何类型是数据都向String转型。
注意:
byte无法自动向cha’r转换。(原因有可能是char没有符号)
char无法自动向short转换。(原因有可能是都是十六位)
char在定义的时候有两种情况:
(1)如果没有单引号包含,则无法单独输出(也不会编译错误)
String a ="mrcai";
charb=5;
a =a+b;
System.out.println(a);
结果是:mrcai
String a ="mrcai";
charb=’5’; //有单引号包含
a =a+b;
System.out.println(a);
结果是:mrcai5
值得注意的是
chara ='a';
System.out.println(a);
结果:a
inta ='a';
intA ='A';
System.out.println(a+"\t"+A);
结果:97 65
chara = 'a';
charA = 'A';
System.out.println(a+A);
结果:162
三个对比看char类型输出变化:
1 chara =5;
System.out.println(a);
结果:(无,非空null并且无编译错误)
2 chara = '5';
System.out.println(a);
结果为:5
3 chara = '5';
charA = 'A';
System.out.println(a+A);
结果为:118 (即'5'在输出是变成了53,'A'为65,'0'为48)