算法(4th ed)(6):基础——基础编程模型 3.2

阅读数:19 2019 年 10 月 26 日 09:58

算法(4th ed)(6):基础——基础编程模型 3.2

(原始数据类型与表达式)

数据类型就是一组数据和对其所能进行的操作的集合。首先考虑以下 4 种 Java 语言最基本的原始数据类型:

  • 整型,及其算术运算符(int);
  • 双精度实数类型,及其算术运算符(double);
  • 布尔型,它的值 {true, false} 及其逻辑操作(boolean);
  • 字符型,它的值是你能够输入的英文字母数字字符和符号(char)。

接下来我们看看如何指明这些类型的值和对这些类型的操作。

Java 程序控制的是用标识符命名的变量。每个变量都有自己的类型并存储了一个合法的值。在 Java 代码中,我们用类似数学表达式的表达式来实现对各种类型的操作。对于原始类型来说,我们用标识符来引用变量,用 +-*/运算符来指定操作,用字面量,例如 1 或者 3.14 来表示值,用形如 (x+2.236)/2 的表达式来表示对值的操作。表达式的目的就是计算某种数据类型的值。表 1.1.1 对这些基本内容进行了说明。

表 1.1.1 Java 程序的基本组成

术语 例子 定义
原始数据类型 int double boolean char 一组数据和对其所能进行的操作的集合(Java 语言内置)
标识符 a abc Ab$ a_b ab123 lo hi 由字母、数字、下划线和 $ 组成的字符串,首字符不能是数字
变量 [任意标识符] 表示某种数据类型的值
运算符 + - * / 表示某种数据类型的运算
字面量 int           1  0 -42
double     2.0 1.0e-15 3.14
boolean       true false
char      ‘a’  ‘+’  ‘9’  ‘\n’
值在源代码中的表示
表达式 int       lo + (hi – lo) / 2
double       1.0e-15 * t
boolean        lo <= hi
字面量、变量或是能够计算出结果的一串字面量、变量和运算符的组合

只要能够指定值域和在此值域上的操作,就能定义一个数据类型。表 1.1.2 总结了 Java 的 intdoublebooleanchar 类型的相关信息。许多现代编程语言中的基本数据类型和它们都很相似。对于 intdouble 来说,这些操作是我们熟悉的算术运算;对于 boolean 来说则是逻辑运算。需要注意的重要一点是,+-*/ 都是被重载过的——根据上下文,同样的运算符对不同类型会执行不同的操作。这些初级运算的关键性质是运算产生的数据的数据类型和参与运算的数据的数据类型是相同的。这也意味着我们经常需要处理近似值,因为很多情况下由表达式定义的准确值并非参与表达式运算的值。例如,5/3 的值是 15.0/3.0 的值是 1.66666666666667,两者都很接近但并不准确地等于 5/3。下表并不完整,我们会在本节最后的答疑部分中讨论更多运算符和偶尔需要考虑到的各种异常情况。

表 1.1.2 Java 中的原始数据类型

类型 值域 运算符 典型表达式表达式
int 231+2311 之间的整数(32 位,二进制补码) +(加)
-(减)
*(乘)
/(除)
%(求余)
5 + 3
5 – 3
5 * 3
5 / 3
5 % 3
8
2
15
1
2
double 双精度实数(64 位,IEEE 754 标准) +(加)
-(减)
*(乘)
/(除)
3.141 + 0.03
2.0 - 2.0e-7
100 * 0.015
6.02e23 / 2.0
3.171
1.9999998
1.5
3.01e23
boolean truefalse &&(与)
\|\|(或)
!(非)
^(异或)
true && false
false \|\| true
!false
true ^ true
false
true
true
false
char 字符(16 位) (算术运算符,但很少使用)

评论

发布