.java数据类型拓展
整数拓展
进制
十进制 二进制(以0b开头) 八进制(以0开头) 十六进制(以0x开头)
例:
int i = 10;
int i2= 010; //八进制0开头
int i3= 0x10; //十六进制0x开头 0~9 A~F
浮点数拓展
例:银行的业务怎么表示?
浮点数据类型包括 float(占4个字节)和double(占8个字节)
如下:
float f = 0.1f; //表示0.1
double d = 1.0/10; //表示0.1
System.out.println(f==d);
//结果为:false
System.out.println(f);
//结果为:0.1
System.out.println(d);
//结果为:0.0
System.out.println("=====================");
float d1 = 215168121f; //表示215168121f
float d2 = d1 + 1; //表示d1+1
System.out.println(d1==d2);
//结果为:true
可看出float所计算出来的结果并不准确,因为其是有限、离散的,有舍入误差,只是接近但不等于,是个“大约”值。
所以最好避免完全使用浮点数进行比较。可以用到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个字节),
Unicode正常表示为 U0000~UFFFF
char c3 = '\u0061'; // \u 代表转义,为Unicode正常表示方式
System.out.println(c3); //转后结果为a
转义字符
字符 | 意义 | ASCII码(十进制) |
---|---|---|
\t | 水平制表(HT)(跳到下一个TAB位置) | 009 |
\n | 换行(LF),将当前位置移到下一行开头 | 010 |
\r | 回车(CR),将当前位置移到本行开头 | 013 |
\a | 响铃(BEL) | 007 |
\b | 退格(BS),将当前位置移向前一列 | 008 |
\f | 换页(FF)将当前位置移向下一页开头 | 012 |
\v | 垂直制表(VT) | 011 |
\ | 代表一个反斜线字符"\" | 092 |
\' | 代表一个单引号字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\0 | 空字符(MULL) | 000 |
\ddd | 1到3位的八进制数所代表的任意字符 | 三位八进制数 |
\xhh | 1到2位的十六进制数所代表的的任意字符 | 二位十六进制数 |
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");