1、整数扩展 进制
- 二进制数:0b开头
八进制数:0开头
十六进制数:0x开头
public class DEMO1 {
public static void main(String[] args) {
//整数扩展:进制
int A = 10;
int B = 0b10;//二进制
int C = 010;//八进制
int D = 0x10;//十六进制
System.out.println(A);
System.out.println(B);
System.out.println(C);
System.out.println(D);
}
}
跑出来的结果是:
10
2
8
16
2、浮点数扩展
public class DEMO2 {
public static void main(String[] args) {
//浮点数扩展:
float E = 0.1f;
double F = 1.0/10;
System.out.println(E==F);//判断E和F是否相等
System.out.println(E);
System.out.println(F);
}
}
结果是:
false
0.1
0.1
看起来相等,但是实际上不相等。
public class DEMO3 {
public static void main(String[] args) {
//浮点数扩展:
float G = 114514114514114514F;
float H = G + 1;
System.out.println(G==H);
}
}
输出的结果是true
- 浮点数:有限、离散,有舍入误差,接近但不等于。
- 最好完全避免使用浮点数进行比较!!!
- 银行业务使用数学工具类:BigDecimal
3、字符扩展 Unicode
public class DEMO4 {
public static void main(String[] args) {
//字符扩展
char I = 'Z';
char J = '中';
System.out.println(I);
System.out.println((int)I);//强制转换为数字
System.out.println(J);
System.out.println((int)J);
}
}
结果为:
Z
90
中
20013
- 所有的字符本质还是数字
- Unicode编码可以处理各种语言文字,从
U0000
-UFFFF
,是十六进制。
public class DEMO5 {
public static void main(String[] args) {
//字符扩展
char K = '\u4e2d'; //Unicode编码
System.out.println(K);
}
}
输出结果为:中
前面“中”对应的十进制数是“20013”,转换为十六进制为“4e2d”
4、字符拓展 转义字符
public class DEMO6 {
public static void main(String[] args) {
//字符拓展 转义字符举例
//制表符 \t
//换行 \n
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
}
}
输出结果为:
Hello World
Hello
World
(这里\t
的显示效果和IDEA里不一样,IDEA里会有横线,可能是显示设置的问题。)
- 转义字符有很多,可以自行查找试用。
5、内存地址
public class DEMO7 {
public static void main(String[] args) {
//内存地址不同
String L = new String ("hello world");
String M = new String ("hello world");
System.out.println(L==M);
//内存地址相同
String N = "hello world";
String O = "hello world";
System.out.println(N==O);
}
}
输出结果:
false
true
(IDEA里输入上述代码,"new String ("hello world")
中间会自动出现original:
字样。不要手动输入original:
,会报错的。)
new
开辟了新的内存空间,也就是L和M的内存地址是不同的,而不使用new
的N和O指向的是同一个地址。
6、布尔值扩展
public class DEMO8 {
public static void main(String[] args) {
//布尔值扩展
boolean flag = true;
if (flag==true){}//新手
if (true){}//老手
}
}
这个代码没有跑,只是想说明if (flag==true){}
和if (true){}
完全相同。
- 代码要精简易读。