《Java编程思想》读书笔记 —— 第3章 操作符,第4章 控制执行

Back

《Java编程思想》的这两章都是比较基础的部分,无论是操作符的用法还是控制语句,都和C/C++类似。但是仍然会有和C/C++很不相同的特性,这里是一些我自己理解的一些不同之处,作为记录。

第三章 操作符

数据类型大小

Java中提供了和C语言几乎相同的数据类型:

  • boolean 布尔 → 只有truefalse
  • byte(2 byte) 字节 → -128-127,默认值为0
  • short(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类型不能当做数字来处理,只有很绝对的truefalse两种可能。所以只允许逻辑运算

  • 被允许的操作:
    • 判断是否相等
    • 取反、与、或、位与、位或、异或
  • 不被允许的操作:
    • 加减乘除、取余、判断大小
    • 移位运算
    • 位非
    • 赋给其他数据类型

char、short、int、long

  • 被允许的操作:

    • 加减乘除、取余
    • 判断大小、是否相等
    • 位与、位或、异或、位非
    • 移位运算
  • 不被允许的操作:

    • 取反、与、或
    • 赋值给boolean

float、double

  • 被允许的操作:

    • 加减乘除、取余(竟然可以取余)
    • 判断大小、是否相等
  • 不被允许的操作:

    • 取反、与、或

    • 所有位运算


第四章 控制执行流程

无论是if-else语句、while语句、for循环语句都和C是一样的,只有Foreach语句是C语言里没有的。

Foreach语法

似乎在很多语言里都很流行Foreach语句,但是在C/C++中却并未引入,主要可以用来访问数组、listset这些数据结构,功能很多样和强大。

一个Foreach语句访问HashSet的例子:

java
for(Integer item : hs)
{
    System.out.pintln(item);
}

switch语句

switch后的括号中,可放的类型有int, char, short, byte, String(Java 1.7加入), enum

不可以是boolean, long, float, double




这两章都挺无聊的