ad

阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_3.3.1 整型

admin 137 2023-10-25

【摘要】 本书摘自《Java核心技术》一书中第3章,第3节,作者是来自美国的凯·S.霍斯特曼(Cay S.Horstmann),由林琪、苏钰涵等译。

3.3.1 整型

整型用于表示没有小数部分的数值,允许是负数。 Java提供了4种整型,具体内容如 表3-1所示。

阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_3.3.1 整型

在通常情况下, int类型最常用。但如果想要表示整个地球的居住人口,就需要使用long 类型了。 byte和 short类型主要用于特定的应用场合,例如,底层的文件处理或者存储空间很 宝贵时的大数组。

在Java中,整型的范围与运行Java代码的机器无关。这就解决了软件从一个平台移植 到另一个平台,或者在同一个平台中的不同操作系统之间进行移植给程序员带来的诸多问 题。与此相反, C 和 C++ 程序会针对不同的处理器选择最为高效的整型,这样就会造成一 个在32位处理器上运行很好的C 程序在16位系统上运行时却发生整数溢出。由于Java程 序必须保证在所有机器上都能够得到相同的运行结果,所以各种数据类型的取值范围必须 固定。

长整型数值有一个后缀L或1(如4000000000L)。十六进制数值有一个前缀0x或 X (如 0xCAFE)。八进制有一个前缀0,例如,010对应十进制中的8。很显然,八进制表示法比较容 易混淆,所以建议最好不要使用八进制常数。

从Java7开始,加上前缀b 或0B就可以写二进制数。例如,0b1001就是9。另外,同样是从 Java7开始,还可以为数字字面量加下划线,如用1000 000(或0b1111 0100 0010 0100 0000)表示 100万。这些下划线只是为了让人更易读。 Java 编译器会去除这些下划线。3.3.2 浮点类型

浮点类型用于表示有小数部分的数值。在Java中有两种浮点类型,具体内容如表3-2 所示。

double表示这种类型的数值精度是float类型的两倍(有人称之为双精度数值)。在很多 情况下, float类型的精度(6~7位有效数字)并不能满足需求。实际上,只有很少的情况 适合使用float类型,例如,需要单精度数的库,或者需要存储大量数据时。

float类型的数值有一个后缀F或 f (例如,3.14F)。 没有后缀F 的浮点数值(如3.14)总 是默认为double类型。当然,也可以在浮点数值后面添加后缀D或 d (例如,3.14D)。

所有的浮点数值计算都遵循IEEE754 规范。具体来说,下面是用于表示溢出和出错情况 的三个特殊的浮点数值:

● 正无穷大

● 负无穷大

● NaN (不是一个数字)

例如, 一个正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN。

3.3.3 char类型

char类型原本用于表示单个字符。不过,现在情况已经有所变化。如今,有些Unicode 字符可以用一个 char值描述,另外一些Unicode字符则需要两个 char值。有关的详细信息请 阅读下一节。

char类型的字面量值要用单引号括起来。例如: 'A'是编码值为65的字符常量。它与 "A"不同,"A"是包含一个字符A的字符串。 char类型的值可以表示为十六进制值,其范围从 \u0000到 \uFFFF。例如,\u2122表示商标符号("),\uθ3Cθ表示希腊字母π。

除了转义序列\u之外,还有一些用于表示特殊字符的转义序列,请参看表3-3。所有这 些转义序列都可以出现在加引号的字符字面量或字符串中。例如,'\u2122'或"Hello\n"。转义 序列\u还可以出现在加引号的字符常量或字符串之外(而其他所有转义序列不可以)。例如:

public static void main(String\u005B\u005D args)

就完全符合语法规则,\u005B和\u005D分别是[和]的编码。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_4.1.2 对象
下一篇:阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_4.5 方法参数
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×