《Java编程思想》读书笔记 —— 第3章 操作符,第4章 控制执行
Back《Java编程思想》的这两章都是比较基础的部分,无论是操作符的用法还是控制语句,都和C/C++类似。但是仍然会有和C/C++很不相同的特性,这里是一些我自己理解的一些不同之处,作为记录。
第三章 操作符 ​
数据类型大小 ​
Java中提供了和C语言几乎相同的数据类型:
boolean
布尔 → 只有true和falsebyte
(2 byte) 字节 → -128-127,默认值为0short
(2 byte)/ int(4 byte)/ long(8 byte) 短整型/整型/长整型float
(4 byte)/ double(8 Byte) 单精度/双精度浮点型 → 储存依照IEEE 754标准char
(2 byte)字符型 → 是一个单一的Unicode字符,取值范围是\u000 - \uffff (0 - 65535)可以储存任何字符 。可表示两万多个汉字(\u4e00 - \u9fa5)
可以看到,这些数据类型无论是名称还是占用空间的大小都和C语言类似,要说不同之处,就是C++里的bool
类型到这里改名成了boolean
,和C++一样,Java中布尔类型所占空间的大小也是含混不清的(好像要视环境而定?)。有点让人不适应的是,Java中并没用提供在C语言中常用的sizeof
函数。书中给出的解释是在使用C/C++编程时,为了程序的“移植”,程序员需要熟知各种数据所占空间的大小,从而确保程序可以在不同机器上按照预想正常运行。但是由于Java本身是跨平台的,所以数据类型的大小对于程序员来说就并不重要了,所以sizeof
函数是没有必要的东西,所以将它取消了。
操作符小结 ​
这里主要是阐明了各种操作符对于不同数据类型来说,哪些是有效的,哪些是不被允许、会报错的。
ps: 个人感觉确实过于细节了一点,估计不会很常用。
boolean ​
Java中的Boolean类型不能当做数字来处理,只有很绝对的true
和false
两种可能。所以只允许逻辑运算
- 被允许的操作:
- 判断是否相等
- 取反、与、或、位与、位或、异或
- 不被允许的操作:
- 加减乘除、取余、判断大小
- 移位运算
- 位非
- 赋给其他数据类型
char、short、int、long ​
-
被允许的操作:
- 加减乘除、取余
- 判断大小、是否相等
- 位与、位或、异或、位非
- 移位运算
-
不被允许的操作:
- 取反、与、或
- 赋值给
boolean
、
float、double ​
-
被允许的操作:
- 加减乘除、取余(竟然可以取余)
- 判断大小、是否相等
-
不被允许的操作:
-
取反、与、或
-
所有位运算
-
第四章 控制执行流程 ​
无论是if-else语句、while语句、for循环语句都和C是一样的,只有Foreach语句是C语言里没有的。
Foreach语法 ​
似乎在很多语言里都很流行Foreach语句,但是在C/C++中却并未引入,主要可以用来访问数组、list
、set
这些数据结构,功能很多样和强大。
一个Foreach语句访问HashSet
的例子:
for(Integer item : hs)
{
System.out.pintln(item);
}
switch语句 ​
switch后的括号中,可放的类型有int, char, short, byte, String(Java 1.7加入), enum
不可以是boolean, long, float, double
这两章都挺无聊的