JAVA学习笔记之三(控制程序流程)

来源:互联网 发布:致远软件安徽分公司 编辑:程序博客网 时间:2024/06/08 00:22

1、所有的运算符都能根据自己的运算对象生成一个值;一个运算符可以改变运算对象的值,这叫做副作用。

2、赋值运算符

    意义:取得右边的值,把它复制到左边

    主类型容纳了实际的值,而非一个对象的句柄,在为其赋值的时候直接将来自一个地方的内容复制到另外一个地方。

    对一个对象进行操作,操作的实际是它的一个句柄。“从一个对象到另外一个对象的赋值”实际是把句柄从一个地方复制到另外一个地方。最终两个句柄指向同一个对象。

3、前递增和前递减运算都是先执行运算后生成值,后递增和后递减都是先生成值后执行运算。

4、equals()的默认行为是比较句柄,除非在自己的新类中改变了equals的行为。大多数JAVA类库改变了equals的行为,实际比较的是对象的内容,而非它的对象。

5、我们将boolean类型当作一种单位或单比特值对待,针对bool类型值对他们进行按位预算与逻辑运算具有相同的效果,只是不会中途“短路”

6、有符号右移位运算(>>)使用了符号扩展:如果右移对象是正值,则在高位填充0,如果右移对象是负值,则在高位填充1

       (>>>>)Java特有的无符号右移运算符。

    若对char、byte、short类型进行移位处理,则在进行移位运算之前它们会先自动转换成为一个int。只有右侧的5个低位才会用到,防止我们在一个int数里移动不切实际的位数。

    对一个Long进行移位处理,得到的结果也是long。此时移动只会用到右侧的6个低位。防止移动超过long值里现成的位数。

7、可在for语句里同事定义多个变量,但她们要是同一种类型。只有for表达式具有在表达式里面定义变量的能力。

8、对JAVA来说,唯一用到标签的地方是在循环语句之前,需要紧靠在循环语句的前方。

    a、简单的continue会退回最内层循环的开头,并继续进入循环体

    b、带有标签的continue 会到达标签的位置,并重新进入紧接在那个标签后面的循环

    c、break 会中断当前循环,并移离当前标签的末尾

    d、带标签的break 会中断当前循环,并移离由那个标签指示的循环的末尾