一、整数型扩展
整数型扩展无非包含4种进制:二进制、十进制、八进制和十六进制。
在Java语言中 二进制在数字开头加0b表示,八进制在数字开头加0表示,十六进制在数字开头加0x表示。如图:
输出结果如下:
其中,十六进制用0-9,A-F表示。
二、浮点数扩展
先看一个例子:
f1和f2都是等于0.1
其中f1==f2是判断f1和f2是否相等,输出结果为fasle。
原因是因为浮点数类型能表现的字长数是有限的,离散的,浮点数中一般都会存在一种叫做舍入误差的东西,即没法精确的表示一个数,大约,接近但不等于的意思。所以说,
最好完全避免使用浮点数进行比较!
最好完全避免使用浮点数进行比较!
最好完全避免使用浮点数进行比较!(重要的事情说三遍!)
再看一个例子:
输出结果为:true!
原因是f3和f4都被浮点数类型舍入误差了,所以是相等的。(一看简洁明了)
还有一个问题就是,既然浮点数无法进行比较,那么我们平时银行业务,即钱怎么在java中进行表示?这就涉及到了BigDecimal,这是一个数字工具类,后面会学到的。
三、字符类型扩展:
再看一个例子:
输出结果为
哟,当我把字符串类型转化为整数类型时,他还真的输出了一个数字,为什么呢?
首先,要知道。字符串的的本质还是数字,这就涉及到了Unicode编码问题 它占两个字节有0-2的16次方即65536个字符串,他是有涉及到一个表的。每个字符都有对应他的数字,例如a=97,A=65等。
这是unicode详解:彻底弄懂 Unicode 编码 - 简书 (jianshu.com)
这是其他博主整理的编码表:(1条消息) UniCode编码表_俊墨客的博客-CSDN博客_unicode编码https://blog.csdn.net/tgvincent/article/details/93884725
感谢两位大佬。
字符串扩展(二)转义符
上图:
举个栗子:
输出结果为:
最后,留个悬念:
一个true 一个flase,why?
后面要来回答:(链接放这)



