数据类型相关问题
整数问题
-
进制
二进制0b开头 八进制0开头 十进制 十六进制0x开头
int i = 10;//i = 10
int i2 = 0b10;//i2 = 2
int i3 = 010;//i3 = 8
int i4 = 0x10;//i4 = 16
int i5 = 0x1f;//i5 = 31
浮点数问题
有限 离散 舍入误差 大约 接近但不等于
最好完全避免使用浮点数进行比较
public class Un {
public static void main(String[] args) {
float f = 0.1f;
double d = 1.0/10;
System.out.println(f);
System.out.println(d);
System.out.println(d == f);
float f1 = 23476287363234f;
float f2 = f1 + 1;
System.out.println(f1 == f2);
}
}
字符问题
-
所有字符本质还是数字
public class Un {
public static void main(String[] args) {
char a = 'a';
char b = '啊';
System.out.println(a);
System.out.println((int)a);//强制转换
System.out.println('b');
System.out.println((int)b);//强制转换
}
}
-
Unicode编码与ASCII编码
ASCII 1字节 不支持中文
Unicode 2字节 支持中文
-
Unicode编码
范围:U0000~UFFFF(16进制)
public class Un {
public static void main(String[] args) {
char c = '\u0061';//'\u'转义字符
System.out.println(c);//a
}
} -
转义字符
-