Java语法之数据类型是什么?

浮点类型

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

● 正无穷大(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值