Java基础--1数据类型

来源:互联网 发布:java编译手机模拟器 编辑:程序博客网 时间:2024/06/04 19:10

浮点类型

浮点类型有三个特殊的浮点数值

● 正无穷大(Double.POSITIVE_INFINITY)
● 负无穷大(Double.NEGATIVE_INFINITY)
● NaN(不是一个数字)(Double.NaN)

重点:浮点数值不适用于禁止出现舍入误差的金融计算中

例如,命令System.out.println(2.0-1.1)将打印出0.8999999999999999,而不是想象中的0.9。主要原因是因为浮点数值采用二进制系统表示。而在二进制系统中无法精确表示出分数1/10,这就好比在十进制无法精确表示出1/3一样。
……………………………………………………………………………………………………………………………………….
如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类。

char类型

char类型用于表示单个字符。Unicode编码单元可以表示为十六进制值,其范围从\u0000到\uffff。例如:\2122表示注册符号(™),\u03C0表示希腊字母π。
表示特殊字符的转义序列符(部分):
\b 退格 \u0008
\t 制表 \u0009
\r 回车 \u000d
……………………………………………………………………………………………………………………………………….
转义序列符\u还可以出现在字符常量或字符串的引号之外(而其他所有转义序列不可以)。例如:
public static void main(String\u0058\u005D args)
\u005B [
\u005D ]
这种形式完全符合语法规则。
……………………………………………………………………………………………………………………………………….
Unicode打破了传统字符编码方法的限制。在Unicode出现之前,已经有许多不同的标准。:美国的ASCII、西欧语言中的ISO8859-1、中国的GB 18030和 BIG-5等。
这样就产生了下面两个问题:
○ 对于任意给定的代码值,在不同的编码方案下有可能对应不同的字母
○ 采用大字符集的语言及其编码长度可能不同
………………………………………………………………………………………………………………………………………
设计Unicode编码的目的就是要解决这些问题。代码点(code point)是指与一个编码表中的某个字符对应的代码值。UTF-16编码采用不同长度的编码表示所有Unicode代码点。在基本的多语言级别中,每个字符用16位表示,通常被称为代码单元(code unit);而辅助字符采用一堆连续的代码单元进行编码。这样构成的编码值一定落入基本的多语言级别中空闲的2048字节内,通常被称为替代区域(surrogate area)。
……………………………………………………………………………………………………………………………………….
在Java中,char类型用UTF-16编码描述一个代码单元。
强烈建议不要在程序中使用char类型,除非确实需要对UTF-16代码单元进行操作。最好将需要处理的字符串用抽象数据类型表示。

……………………………………………………………………………………………………………………………………….
From—–Java核心技术·卷I