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
- 短路与&& ,短路或|| 取反 !
- 逻辑&,逻辑或 | , ^ 逻辑异或
- 异或 不同为真,相同为假
- 短路&& 和 逻辑& 的基本规则 两者的运算结果没有
- 短路或和逻辑或,短路或只要前面的满足了条件就不会判断后面的是否满足
- 一般都是使用短路或短路与
- 反和异或
赋值运算符
- 基本赋值运算符
- 符合赋值运算符
- +=
- -= …
- 赋值运算符特点
- 运算顺序从右到左
- 左边只能是变量,右边可以是变量,表达式,常量值
- 复合赋值运算符会进行强制类型转换
- b += 2
- b++
三元运算符
- 基本语法
- 条件表达式?表达式1:表达式2;
- 运算规则:
- 如果条件表达式为true,运算后的结果是表达式1
- 如果条件表达式为false,运算后的结果是表达式2
- 三元运算符细节
- 表达式1和表达式2必须是可以赋给接收变量的类型
- 三元运算符可以转换成if–else语句
运算符的优先级
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hT1teKXH-1652493310950)(image-20220411183453525.png)]
- 运算符有优先级,上一行的优先于下一行
- 只有单目运算符,赋值运算符是从右往左运算的
- () ,运算优先级最高
- 单目运算
- 加减乘除
- 位移运算符
- 比较运算符
- 逻辑运算符
- 三元运算符
- 赋值运算符
标识符的命名规则和规范
规则是必须遵守,规范是这样做更好
- 可以起名字的地方都是标识符
- 规则
- 大小写,_, 数字$
- 不能数字开头
- 不能使用关键字保留字
- 区分大小写
- 标识符中不能包含空格
- 命名规范
- 包名 多单词组成时所有字母都小写 aaa.bbb.ccc
- 类名 接口名:多单词组成时,所有单词的首字母大写XxxYyyZzz(大驼峰)
- 变量名、方法名:多单词时第一个字母首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
- 常量名:所有字母都大写,多单词用下划线连接XXX_YYY_ZZZ
- 更详细的看文档
- 关键字 (不用背) 特殊用途的字符串
- 保留字,以后版本中可能会使用的关键字
键盘输入语句
- 需要使用扫描器 Scanner 导入该类需要的包
进制
- 进制介绍
- 二进制,0b开头
- 十进制
- 八进制,以数字0开头
- 十六进制:0-9以及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写。
- 进制的转换
- 第一组
- 二进制转10
- 8转10
- 16转10
- 第二组
- 10 转 2 直到商 0 余数反过来
- 10 转 8 直到商 0 余数反过来
- 10 转 16 直到商 0 余数倒过来
- 第三组和第四组,二进制和其它转换
- 第一组
位运算的思考题
int a = 1 >> 2; // 1 向右位移两位
>>> 无符号右移
- ~2 = ? 按位取反操作
- & 按位与
- | 按位或
- ^ 按位异或
原码、反码、补码
- 二进制的最高位是符号位 0 表示整数 1表示负数(0 -> 0 1 -> - 横过来)
- 正数的原码,反码,补码都一样
- 负数的反码=原码符号位不变,其它位取反
- 负数的补码=它的反码+1,负数的反码=负数补码 - 1
- 0 的反码,补码都是0
- java中没有无符号数
- 计算机运行的时候,都是以补码运算
- 看运算结果,需要看原码
位运算符
- java 中有7个位运算(&、|、^、~、>>、<< 和 >>> )
- 没有
<<<
无符号左移
章节作业
a % b 当 a 是小数时,公式=a - (int)a/b*