简单数据类型之间的转换
在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double
自动类型转换
低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r
char c='c';
int i=c;
System.out.println("output:" i);
输出:output:99;
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99;char c=(char)i;System.out.println("output:" c);
public class TestBasicTypeConvert {
static void prt(String s) {
System.out.println(s);
}
void f1(long x) { prt("f1(long)"); }
void f1(float x) { prt("f1(float)"); }
void f1(double x) { prt("f1(double)"); }
public static void main(String [] args){
TestBasicTypeConvert tbConvert=new TestBasicTypeConvert();
tbConvert.f1(1);
}
}
//f1(long)
高转低则要强转
byte b1 = 3; byte b2 = 4; byte b = b1-b2这个之所以报错,是因为在进行b1-b2的运算时,会自动将b1和b2提升成int型,所以最后结果也是int型,需要进行强制装换,才能赋值给byte型变量
默认排序你似乎有点搞错,应该是byte,char,short,int,long,float,double