基础问题
一、整数拓展
进制:
- 二进制: 由0和1两个数字组成,0b开头
- 八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
- 十进制: 都是以0-9这九个数字组成,不能以0开头。
- 十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x或0X开始。
public class Demo3 {
public static void main(String[] args) {
int i = 0b1; //二进制
int i2 = 010; //八进制
int i3 = 119; //十进制
int i4 = 0x11; //十六进制
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
//输出结果为
1
8
119
17
二、浮点数拓展
float、double
-
问题:银行业务如何表示?钱怎么表示?
-
特点: 有限 离散 舍入误差 大约数(接近但不等于)
-
结论:最好完全避免使用浮点数进行比较
-
所以银行使用BigDecimal的类 (数学工具类),不能使用float进行比对
public class Demo3 { public static void main(String[] args) { float f = 0.1f; //0.1 double d = 1.0/10; //0.1 System.out.println(f==d); //false float d1 = 42425234242432342f; float d2 = d1 + 1; System.out.println(d1==d2); //true } } //输出结果: false true
三、字符串拓展
public class Demo3 {
//强制转换可以把字符变成数字,所有的字符本质还是数字
//char类型涉及编码问题, Unicode编码可以处理各种语言文字,占2字节,可以表示0-65536个字符或者更多
//会使用Unicode的编码来表示 a=97 中=20013
//从u0000-uffff
public static void main(String[] args) {
char c1 = 'a';//通过单引号表示字符常量
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
char c3 = '\u0061'; //正常Unicode编码表示方式,\u表示转义
System.out.println(c3);
}
}
//输出结果:
a
97
中
20013
a
四、转义字符
public class Demo3 {
public static void main(String[] args) {
//转义字符
// \t 制表符 \n 换行 ...
System.out.println("Hello\tWorld");//转义
System.out.println("Hello\nWorld");
}
}
//输出结果:
Hello World
Hello
World
1.八进制转义序列:\ + 1到3位5数字;范围’\000’~’\377’ 、 \0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535 、\u0000:空字符
3.特殊字符:\ ":双引号、 \ ':单引号、\ \:反斜线
4.控制字符:\ ’ 单引号字符、\\ 反斜杠字符、\r 回车、\n 换行、\f 走纸换页、\t 横向跳格、\b 退格
public class Demo3 {
//遗留问题 为什么内容一样但是输入却不一样
//从对象、内存分析
public static void main(String[] args) {
String sa = new String( "hel1o world");
String sb = new String( "hello world");
System. out . println(sa==sb);//false
String sc = "hel1o world";
String sd = "hello world";
System.out.println(sc==sd);//true
}
}
五、布尔值扩展
public class Demo3 {
boolean flag = true;
if (flag = true){}//新手
if (flag){}//老手
//less is More! 代码要精简易读
}
}
本文详细介绍了Java中不同进制的整数表示,包括二进制、八进制、十进制和十六进制,并强调了浮点数在银行业务中的精度问题,推荐使用BigDecimal避免误差。此外,探讨了字符串的Unicode编码和转义字符的使用。最后,提到了布尔值在条件判断中的简洁表达。
2229

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



