数据类型的扩展

数据类型的拓展

整数拓展

进制:二进制 八进制(数字前加o) 十进制 十六进制(数字前加ox)

int i = 10;
int i2 = 010;//八进制0
int i3 = 0x11;//十六进制0x    0~9 A~F

System.out.println(i);
System.out.println(i2);
System.out.println(i3);

数据类型的扩展

浮点数拓展

float: 有限 离散 舍入误差 大约 接近但不等于

最好完全避免使用浮点数进行比较

最好完全避免使用浮点数进行比较

最好完全避免使用浮点数进行比较

可用BigDecimal 数学工具类

float f = 0.1f;//0.1
double d = 1.0 / 10;//0.1

System.out.println(f == d);//false
System.out.println(f);
System.out.println(d);

float d1 = 2323232323232323232f;
float d2 = d1 + 1;
System.out.println(d1 == d2);//true

字符拓展

所有的字符本质还是数字

编码 Unicode表 2字节

char c1 = 'a';
char c2 = '中';
System.out.println(c1);

System.out.println((int) c1);//强制转换

System.out.println(c2);

System.out.println((int) c2);//强制转换

数据类型的扩展

因为Unicode表是十六进制,所以0061表示a。

char c3 = '\u0061';
System.out.println(c3);//a

转义字符

数据类型的扩展

几种编码语言的区别

由于ASCII编码方式包含的字符太少,基本只对英文字符进行了编码.

中国用GB2312等对简体汉字进行了编码.别的国家也有自己的编码方式.

为了方便交流,防止乱码,Unicode编码方式应运而生.

Unicode编码被称为万国码,单一码,统一码.它是为每种语言的每个字符都设定了统一的,唯一的二进制编码,以满足跨语言,跨平台进行文本交换和处理的需求,是计算机科学领域的一项业界标准.

Unicode编码用两个字节来存储一个字符,所以它最大可以对65536个字符(2的16次方)进行编码.它包含了世界上所有的字符,每个字符都是用独一无二的二进制表示.

●用Unicode对英文进行编码,相对于ASCII编码来说,会更占用空间.Unicode使用两个字节存储,英文存储只需要占用一个字节,用Unicode编码,就会在多出的一个字节上全部置零.这就造成了空间浪费.于是就有了UTF-8编码

UTF-8编码
(8-bit Unicode Transformation format)它是Unicode的实现方式,是一种可变字节的编码方式,用1-4个字节来表示一个字符.对英文就使用一个字节来表示.对汉字就使用两个字节来表示.有更复杂的字符就用3-4个字节来表示.

布尔值扩展

boolean flag = true;

if(flag==true){}//新手

if(flag)//老手

Less is More! 代码要精简易读

小思考

String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb);//false

String sc = "hello world";
String sd = "hello world";
System.out.println(sc == sd);//true
上一篇:icon图标


下一篇:Task 3