整数类型拓展
java中可以表示二进制、八进制、十进制、十六进制数
其中二进制定义以0b开头
例如 int i1 = 0b10;//表示把一个二进制数赋值给了i1,java会自动转换成十进制输出,输出值为2
同理
八进制以0开头
int i2 = 010;//这个表示把一个八进制数赋值给了i2,输出值自动转换成十进制,输出值为数字8
十六进制以0x开头
int i3 = 0x10;//十六进制从0~9 A~F,转换成十进制输出,输出值为16
十进制
int i4 = 10;//没有任何前缀,表示正常十进制赋值,输出为十进制10
字符类型拓展
char ch1 = 'a';
char ch2 = '中';
System.out.println(ch1);//输出 a
System.out.println((int)ch1);//强制类型转换 输出97
System.out.println(ch2);//输出 中
System.out.println((int)ch2);//强制类型转换 输出20013
以上说明了,任意一个字符都有与之对应的整型数字,所有的字符本质上都是数字
Unicode编码中可以找到与字符一一对应的数字
Unicode编码占用两个字节,unicode编码从0~65536
如果需要直接使用Unicode编码,需要进行转义用 \u来表示
使用范围从u0000~uFFFF,用十六进制来表示
注意:这边如果不用u,而是使用0x,那么单纯就表示一个整型数字而不能表示一个字符,
\u表示转义,从Unicode编码中查找对应数字的字符
比如 char ch3 = '\u0061';//十六进制转换成十进制就是97
System.out.println(ch3);//输出结果为 a
拓展两个转义字符
\t 表示tab键
\n 表示换行
举例
System.out.println("Hello\tWorld!");//输出值为 Hello World! 中间有一个tab键的空格
System.out.println("Hello\nWorld!");输出结果为 Hello
World! 这边有一个换行效果
浮点数类型拓展
***float 有限 离散 舍入误差 大约 接近但不准确***
***double***
float f1 = 0.1f;
double d1 = 0.1;
System.out.println(f1==d1);//输出结果为false
float f2 = 323123123123132131f;
double d2 = f2 + 1;
System.out.println(f2==d2);//输出结果为true
以上结果说明一个事情,因为精度的问题会存在一个舍入误差问题,后面会学到一个BigDecimal类来进行计算
所以我们最好完全避免使用浮点数进行比较
布尔类型拓展
boolean flag = true;
if(flag==true){};
if(flag){};
两种方式表达的效果是一样的,但是熟练之后基本选择第二种书写方式