[随笔][Java][读书笔记][think in java][第三章 流程控制]

运算符简介

  • java的运算符都可以根据自己的运算对象生成一个值。此外,运算符可以改变运算对象的值,叫做“副作用”。
  • 几乎所有的运算符都只能操作主类型
  • =, ==,!= 这三个符号可以操作所有的对象
  • String类支持+和+=,可以简单的看成是运算符重载,但是在java中其他的对象不支持运算符重载
  • 在进行对象的赋值操作的时候,因为操纵的是对象的句柄,在进行赋值的时候是将一个句柄的值赋值给另一个句柄。之后两个句柄指向的是相同的对象。
  • 将对象传递到一个方法的内部的时候,会产生别名现象。
  • 整数的除法会直接砍掉小数的部分,不会进位。
  • java的随机数使用时间作为一个种子值。
  • 编译器可以识别a = b * -c;这样的语句。
  • 比较运算符== 和 != 比较的是对象的句柄。使用方法equals()比较对象的内容,这个方法对所有的对象都适用,但是不适用于主类型。equals()方法默认比较的是句柄,如果在新的类中没有重写equal()方法,则效果和== != 一样
  • 逻辑运算符&& || ! 都可以生成一个布尔值,同时这几个运算符只能应用于布尔值,不可以将一个非布尔值当作布尔值在表达式中使用
  • 位运算符允许操作一个整数主类型的某一个比特位。java有移位运算符。
  • 布尔类型不允许进行任何的类型转换。

3.2 执行控制

  • java使用了c的全部控制语句。if-else, while, do-while, for, switch。java不支持goto控制
  • 所有条件语句都利用条件表达式的运算结果(真或假)进行流程的控制。java不允许将一个数字作为布尔值使用。如果想在一次布尔测试中测试一个非布尔值,首先使用一个条件表达式产生一个布尔值。if(a != 0)
  • 逗号运算符,在java中,唯一可以用到逗号运算符的地方是for循环的控制表达式。在控制表达式的初始化部分和步进部分,可以使用由一系列逗号分隔的语句,这些语句会独立执行。在初始化部分,定义的变量都属于同一种类型。
  • goto仍是java的一个关键字。

猜你喜欢

转载自www.cnblogs.com/person3/p/9507093.html