Java编程思想读书笔记(3):操作符与控制流程

Java编程思想读书笔记(3)

三、操作符与控制流程

  1. Java操作符。几乎所有的操作符都只能操作“基本类型”,例外的是“=”,“==”和“!=”,这些操作符能够操作所有的对象,除此之外,String类支持“+”和“+=”。

  2. 赋值“=”的意思是:取得右边的值(右值rvalue),把它复制给左边(左值lvalue)。
    右值可以是任何常数、变量或者表达式(只要它能生成一个值就行),但左值必须是一个明确的已命名的变量,即它必须有一个物理空间。

  3. 对一个对象进行操作时,实际操作的是对象的引用。所以如果将一个对象赋值给另一个对象或是传递进方法里,实际上是将引用从一个地方复制到另一个地方,它们引用的实际上变为同一个对象。

  4. 对于前缀递增和前缀递减(如++a--a),会先执行运算a+1,再生成值a++a等价于a=a+1;--a等价于a=a-1
    而对于后缀递减和后缀递增(如a++a--),会先生成值a,再执行运算a+1。是(涉及赋值的操作符外)唯一具有“副作用”的操作符。

  5. 关系操作符。基本类型直接使用==和!=即可,对象可以使用equals()方法,自定义的类需要覆盖equals()方法。

  6. 在将float或者double转型为整型值时,总是对该数字执行截尾,将小数部分“砍掉”(而不是四舍五入)。如果想要得到舍入的结果,就需要使用java.lang.Math中的round()方法:Math.round(value);

  7. 直接常量:

类型表示方法适用类型
十六进制前缀0x(0X),后跟0-9或小写(或大写)a~f所有整数数据类型
八进制前缀0后跟0-7所有整数数据类型
长整型后跟l或Llong
单精度浮点数后跟f或Ffloat
双精度浮点数后跟d或Ddouble
  1. 位操作:
    1)如果两个输入位都是1,则按位“与(&)”操作符生成一个输出位1,否则生成一个输出位0;
    2)如果两个输入位只要有一个是1,则按位“或(|)”操作符生成一个输出位1;只有在两个输入位都是0的情况下,才会生成输出位0;
    3)按位“非(~)”操作符生成与输入位相反的输出位。

  2. 移位运算符
    操作的运算对象是二进制的“位”,只可以被用来处理整数类型(如int、byte、long、short、char)。

  1. 左移位操作符(<<)能将操作符左边的运算对象向左移动操作符右侧指定的位数(在低位补0)。
  2. 右移位操作符(>>)能将操作符左边的运算对象向右移动操作符右侧指定的位数。若符号为正,则在高位插入0;若符号为负,则在高位插入1。
  3. 无符号右移操作符(>>>),无论正负,都在高位插入0。
  1. 执行窄化操作(narrowing convertion),即大容量数据类型转为小容量数据类型,需要进行显式转换;扩展转换(widening convertion),即小容量数据类型转为大容量数据类型,则不需要。

  2. 控制执行流程形式:

if (Boolean-expression)  
    statement  
else  
    statement
//while循环
while (Boolean-expression)  
    statement
    
//do-while循环 
do  
    statement  
while (Boolean-expression);

//for循环
for  (initialization ; Boolean-expression ; step )  
    statement
  1. Foreach语法:一种更加简洁的for语法用于数组和容器,且只能用于数组和容器。在只遍历时,尽量使用ForEach语法。
    例如:String[] strs =new String[];
Foreach(String s: strs) {
    ......
}
  1. return关键字有两方面的用途:一方面指定一个方法返回什么值;另一方面它会导致当前方法的退出,并返回那个值。

  2. break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。

  3. 在循环语句中使用标签:“ label: ”。 可与continue和break配合使用。规则如下:

  1. 一般的continue会退回最内层循环的开头(顶部),并继续执行。
  2. 带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
  3. 一般的break会中断并跳出当前循环。
  4. 带标签的break会中断并跳出标签所指的循环。

注:JAVA中需要使用标签的唯一理由就是因为有循环嵌套的存在,而且想从多层嵌套中break或continue。

  1. 在Math.random()的输出中包括0.0,输出值范围是[0,1)。但出现0概率极小。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值