chapter4

chapter04

运算符介绍

算数运算符

  • 介绍

  • 一览 + - * / %取余 ++ – 自增自减

    • 11 % 9 == 2 本质 a % b = a - a / b * b 取余的结果和左边的数符号一致

    • ++

      • 独立语句使用

      • 作为表达式使用

        • ++i 先自增后赋值

        • i++ 先赋值后自增

          • int i = 1;
            i = i ++ ; // (1)temp = i; (2) i = i + 1; (3) i = temp;
            // 因此 i 最后的数值等于 1
            
          • int i = 1;
            i = ++ i; // (1) i = i + 1; (2)temp = i;(3) i = temp;
            // 因此 i 最后的数值等于 2
            

关系运算符

==

!= 不等于

instanceof 检查是否是类的对象

  • 细节
    • 关系运算符的结果都是boolean
    • 关系表达式 (关系运算符)
    • 相等

逻辑运算符

连接多个条件,最终的结果也是boolean

  1. 短路与&& ,短路或|| 取反 !
  2. 逻辑&,逻辑或 | , ^ 逻辑异或
    1. 异或 不同为真,相同为假
    2. 短路&& 和 逻辑& 的基本规则 两者的运算结果没有
    3. 短路或和逻辑或,短路或只要前面的满足了条件就不会判断后面的是否满足
      1. 一般都是使用短路或短路与
    4. 反和异或

赋值运算符

  • 基本赋值运算符
  • 符合赋值运算符
    • +=
    • -= …
  • 赋值运算符特点
    • 运算顺序从右到左
    • 左边只能是变量,右边可以是变量,表达式,常量值
    • 复合赋值运算符会进行强制类型转换
      • b += 2
      • b++

三元运算符

  • 基本语法
    • 条件表达式?表达式1:表达式2;
    • 运算规则:
      • 如果条件表达式为true,运算后的结果是表达式1
      • 如果条件表达式为false,运算后的结果是表达式2
  • 三元运算符细节
    • 表达式1和表达式2必须是可以赋给接收变量的类型
    • 三元运算符可以转换成if–else语句

运算符的优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hT1teKXH-1652493310950)(image-20220411183453525.png)]

  1. 运算符有优先级,上一行的优先于下一行
  2. 只有单目运算符,赋值运算符是从右往左运算的
    1. () ,运算优先级最高
    2. 单目运算
    3. 加减乘除
    4. 位移运算符
    5. 比较运算符
    6. 逻辑运算符
    7. 三元运算符
    8. 赋值运算符

标识符的命名规则和规范

规则是必须遵守,规范是这样做更好

  • 可以起名字的地方都是标识符
  • 规则
    1. 大小写,_, 数字$
    2. 不能数字开头
    3. 不能使用关键字保留字
    4. 区分大小写
    5. 标识符中不能包含空格
  • 命名规范
    1. 包名 多单词组成时所有字母都小写 aaa.bbb.ccc
    2. 类名 接口名:多单词组成时,所有单词的首字母大写XxxYyyZzz(大驼峰)
    3. 变量名、方法名:多单词时第一个字母首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
    4. 常量名:所有字母都大写,多单词用下划线连接XXX_YYY_ZZZ
    5. 更详细的看文档
  • 关键字 (不用背) 特殊用途的字符串
  • 保留字,以后版本中可能会使用的关键字

键盘输入语句

  • 需要使用扫描器 Scanner 导入该类需要的包

进制

  • 进制介绍
    1. 二进制,0b开头
    2. 十进制
    3. 八进制,以数字0开头
    4. 十六进制:0-9以及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写。
  • 进制的转换
    • 第一组
      1. 二进制转10
      2. 8转10
      3. 16转10
    • 第二组
      1. 10 转 2 直到商 0 余数反过来
      2. 10 转 8 直到商 0 余数反过来
      3. 10 转 16 直到商 0 余数倒过来
    • 第三组和第四组,二进制和其它转换

位运算的思考题

int a = 1 >> 2; // 1 向右位移两位
>>> 无符号右移
  • ~2 = ? 按位取反操作
  • & 按位与
  • | 按位或
  • ^ 按位异或

原码、反码、补码

  1. 二进制的最高位是符号位 0 表示整数 1表示负数(0 -> 0 1 -> - 横过来)
  2. 正数的原码,反码,补码都一样
  3. 负数的反码=原码符号位不变,其它位取反
  4. 负数的补码=它的反码+1,负数的反码=负数补码 - 1
  5. 0 的反码,补码都是0
  6. java中没有无符号数
  7. 计算机运行的时候,都是以补码运算
  8. 看运算结果,需要看原码

位运算符

  • java 中有7个位运算(&、|、^、~、>>、<< 和 >>> )
  • 没有 <<< 无符号左移

章节作业

a % b 当 a 是小数时,公式=a - (int)a/b*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值