关系运算符
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
- == 等于【注意是2个=】
- != 不等于【前面有感叹号】
- 关系运算符运算的结果一定是boolean类型的值只能取 true / false
- 当<、>、<=、>=和==、!=放在一起运算的时候它是先算【<、>、<=、>=】再算【==、!=】
- 关系运算符一般用于比较两个数值之间的大小关系
- String类型只能使用 ==、!= 这两种运算符用来比较字符串所在内存的地址是否相等
- char 类型可以使用关系运算符来比较【实际比较的是他的ASCII码】
ASCII码值
- A 的ASCII码值是65,B-Z在A的基础上递增加 1
- a 的ASCII码值是是在A基础上加32,B-Z在A的基础上递增加 1
逻辑运算符
- && 与 表达式两边运算结果都为ture运算结果才为ture,> 如果前面一个表达式为false,后面的表达式就不参与运算了【短路效应】
- || 或 表达式两边运算结果只要一个为ture运算结果就为ture,必须同时为false,运算结果才为false
- ! 非
- 输入时ture 输出就是false
- 输入时false 输出就是ture
- 优先级 ! 高于 && 和 ||
- 当他们并行都用在表达式中时先算 ! 再算 && 最后 ||
- 可以使用小括号()来控制他的优先级
条件表达式
- (条件判断) ? (表达式1) : (表达式2);
- 当条件判断的结果为true是时候就取表达式1的结果
- 当条件判断的结果为false是时候就取表达式2的结果
- 当取到表达式1或者表达式2的结果后,另一个表达式2或者表达式1就无需计算了
位运算符
- << 向左移位
int num = 1;
num = num << 4; //表示将num值向左移4位得到16 等价于 num * 2^4
- 向右移位
int num = 16;
num = num >> 4; // 表示将num值向左移4位得到16 等价于 num / 2^4
- ~ 取反运算
正数取反 得到 负数 值的大小为绝对值+1
int a=8;
a=~a; // 得到a等于-9
负数取反 得到 正数 值的大小为绝对值-1
int a=-8;
a=~a; // 得到a等于7
总结
- 单目运算符包括! ~ ++ –,他们的优先级别最高
- 优先级别低的是赋值运算符 =
- 建议通过加 () 来控制运算符的运算顺序
- 从右向左结合的是赋值运算符、三目运算符【条件表达式】、单目运算符【! ~ ++ –】
- 算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符