算数运算符的概念和使用

算数运算符注意事项

算术运算符实现时间拆分

字符串连接符的概念与使用

关系运算符的概念和使用

关系运算符实现负数判断

自增减运算符运算符的概念和使用

前后加加的区别

自增减运算符的笔试考点

逻辑运算符的概念和使用

逻辑运算符的短路特性

逻辑运算符判断三位数

三目运算符的概念和使用

三目运算符查找最大值

赋值运算符的概念和使用

赋值运算符考点1

  1. byte b1 = 10;
  2. System.out.println("b1 = "+b1);
  3. //b1 = b1 + 2; ////错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + int 相加的结果还是int类型
  4. //b1 = b1 + (byte)2; //错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + byte 相加结果还是int类型 编译器优化
  5. /*考虑到加法运算可能会溢出,编译时自动做了类型提升*/
  6. //b1 = (byte)(b1 + 2); //强制类型转换,将int类型转成byte
  7. b1 += 2; //等价与 (byte)(b1 + 2) 自带强转
  8. System.out.println("b1 = "+b1);
  • 两个byte的数值相加,结果是int

考虑到加法运算可能会溢出,编译时自动做了类型提升
相比于 = + 运算 += 运算符自带强制类型转换, 即b1 += 2; //等价与b1 = (byte)(b1 + 2)

赋值运算符考点2

  1. /*
  2. 赋值运算符的概念与使用
  3. */
  4. public class AssignTest {
  5. public static void main(String[] args) {
  6. //5. 笔试考点一 +=运算的强转效果
  7. byte b1 = 10;
  8. System.out.println("b1 = "+b1);
  9. //b1 = b1 + 2; ////错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + int 相加的结果还是int类型
  10. //b1 = b1 + (byte)2; //错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + byte 相加结果还是int类型 编译器优化
  11. /*考虑到加法运算可能会溢出,编译时自动做了类型提升*/
  12. //b1 = (byte)(b1 + 2); //强制类型转换,将int类型转成byte
  13. b1 += 2; //等价与 (byte)(b1 + 2) 自带强转
  14. System.out.println("b1 = "+b1);
  15. System.out.println("===========================");
  16. //6. 笔试考点二
  17. int ia;
  18. //ia == 2; 表达式判断变量ia是否2
  19. //2 == ia; 表示判断2是否等于变量ia的数值 从结果上来说是等价的,推荐该方式,更能规避少写一个等号导致的错误,因为左值不能为常量.
  20. //ia = 2; 表示将2赋值给变量ia,覆盖变量ia原来的值
  21. //2 = ia; //错误: 意外的类型
  22. }
  23. }
  • ia == 2; 表达式判断变量ia是否2

    2 == ia; 表示判断2是否等于变量ia的数值

  • 从结果上来说是等价的,推荐该方式,更能规避少写一个等号导致的错误,因为左值不能为常量, 若少写一个等号,编译阶段就可以检查出问题.

    移位运算符的概念

    << 左移
    >> 右移
    >>> 逻辑右移运算符 ==> 无符号右移运算符
    image.png

    移位运算符的使用

位运算符的使用

运算符的优先级

任务总结