整数扩展
#进制
进制 | 2进制 | 10进制 | 8进制 | 16进制 |
---|---|---|---|---|
表示方法 | 0b | 0 | 0x | |
实例 | 0b10 | 10 | 010 | 0x10 |
结果 | 2 | 10 | 8 | 16 |
浮点数扩展
//float 有限 离散 舍入误差 大约接近,但不等于
//double
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
实例1:
float f =0.1f;
double d =1.0/10;
System.out.println(f==d); //判断f与d是否一样
System.out.println(f);
System.out.println(d);
结果:
false
0.1
0.1
结论:虽然f与d的结果均为0.1但大小并不相同 (因为会有舍入的情况)
实例2:
float d1 =2313313131313f;
float d2 =d1+1;
System.out.println(d1);
System.out.println(d2);
System.out.println(d1==d2);
结果:
2.31331306E12
2.31331306E12
true
结论:数值过大,导致舍入并不明显
因此,在涉及到金融系列的问题,如银行业务时,float与double类型并不适用。 此时会用到BigDecimal类 即数学工具类
字符扩展
实例1:
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
结论:所有的字符本质还是数字
采用Unicode 编码表 为2个字节即2的16次方 =65536
范围 U0000----UFFFF
转义字符
\t 制表符
\n 换行
//......
实例2:
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa);
System.out.println(sb);
System.out.println(sa==sb);
结果:
hello world
hello world
false
String sc ="hello world";
String sd ="hello world";
System.out.println(sc);
System.out.println(sd);
System.out.println(sc==sd);
结果:
hello world
hello world
true
结论:此结论需从内存进行分析,我暂时也不明白
布尔值扩展
boolean flag =true;
if (flag==true){} 与 if (flag){}
代码是一样的