数据类型拓展
整数拓展:进制
int i1 = 0b10; // 二进制以0b开头
int i2 = 010; // 八进制以0开头
int i3 = 0x10; // 十六进制以0x开头 0~9~A~F
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
输出:
2
8
16
浮点数拓展
float f = 0.1F; // f:0.1
double = 1.0/10 // d:0.1
System.out.println(f==d);
输出:
false
float d1 = 213131231231231313123f;
float d2 = d1 + 1;
System.out.println(d1==d2);
输出:
true
按我们的常识来看,上面两段代码的输出结果是错误的。这是因为浮点数的某些特性导致的。
浮点数是有限的,离散的。浮点数存在舍入误差,由于很多数没办法精确的表示,结果只能是一个大约数(接近但不等于)
因此,我们在使用浮点数比较时,最好完全使用浮点数进行比较
记住一个数学工具类,BigDecimal,这个类可以处理很多精确的数学问题。
字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
输出:
a
97
中
20013
这个结果表明了:
- 所有的字符本质还是数字
- char类型会涉及到编码问题,Unicode编码可以处理各种语言的文字,占用2字节,范围:0~65536,Unicode 表:(97:a 65:A)每个字符在表中都有对应的数字
例如:
char c3 = '\u0061';
System.out.println(c3);
输出:
a
转义字符
常用的有两个:
- \t 制表符
- \n 换行
还有很多,请自行查表
布尔值拓展
boolean flag = true;
if(flag==true){//代码块} // 新手写法
if(flag){//代码块} // 老手写法
Less is More!
代码要精简易读
本文详细介绍了不同数据类型的使用方法,包括整数的进制表示、浮点数的精度问题及解决方案、字符编码及其转义字符,以及布尔类型的简洁使用技巧。

被折叠的 条评论
为什么被折叠?



