//进制 0b 二进制 十进制 0八进制 0x十六进制 int i = 10; //10 int i1 = 010; //8 int i3 = 017; //15 int i2 = 0x1F; //16 int i4 = 0x1F; //31
float数据类型是有限的、离散的,是个大约数,最好完全避免使用浮点数来进行比价
float a = 0.1f; float b = 1/10; System.out.println(a==b); // false float c = 123546879456465f; float d = c+1; System.out.println(c==d); // true
根据基本类型范围大小,从高到低需要强制转换,从低到高需要强制转换,强制转换时需要注意内存溢出、精度丢失问题
int i = 128; byte a = (byte) i; System.out.println(a); // byte类型范围是 -128~127 这里内存溢出,转换后的值就不正确了 float b = 52.31F;//使用大写规范 double c = 62.1; System.out.println((int) b);//52 精度丢失 System.out.println((int) c);//62 精度丢失