逻辑运算符

【介绍】

        用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean值。

【分类】

  1. 短路与 && , 短路或 ||,取反!;
  2. 逻辑与 &,逻辑或 |,逻辑异或 ^ ;

el三元表达式 java java三元运算符的表达式_java

【区别图示】

 && 和 & 基本规则

名称

语法

特点

使用区别

短路与&&

条件 1&&条件 2

两个条件都为 true,结果为 true,否则 false

如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高

逻辑与&

条件 1&条件 2

两个条件都为 true,结果为 true,否则 false

不管第一个条件是否为 false,第二个条件都要判断,效率低

|| 和 | 使用区别

名称

语法

特点

使用区别

||短路或

条件 1||条件 2

两个条件中,只要有一个成立,结果为 true,否则为 false

如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高

| 逻辑或

条件 1|条件 2

两个条件中,只要有一个条件成立,结果为 true,否则为 false

不管第一个条件是否为 true,第二个条件都要判断,效率低

! 取反 和 ^ 逻辑异或

名称

语法

特点

! 非(取反)

!条件

如果条件本身成立,结果为 false,否则为 true

^ 逻辑异或

条件一 ^ 条件二

当条件一和条件二不同时,则结果为 true, 否则为 false

三元运算符

  • 语法

        条件表达式 ? 表达式 1:表达式 2;

  • 运算规则
  1. 如果条件表达式为 true,运算后的结果是表达式 1
  2. 如果条件表达式为 false,运算后的结果是表达式 2

        【口诀:一真二假】(PS:这个是自己学的时候瞎想的,觉得拗口可以自己总结一个)

【代码演示】

int a = 55;
int b = 88;
int result = a > b ? a++ : b--;
System.out.println("result=" + result);
System.out.println("a=" + a);
System.out.println("b=" + b);
// 解读
// 1. a > b 为 false
// 2. 返回 b--, 先返回 b 的值,然后在 b-1
// 3. 返回的结果是 88

【细节分析】

  1. 表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换);
  2. 三元运算符可以转成 if--else 语句;                                                                                         【例:int res = a > b ? a++ : --b  ;     if ( a > b) res = a++  ;      else res = --b;】

位运算符

  • java 中有 7 个位运算:&,|, ^ ,~,>>,<< 和 >>>;

el三元表达式 java java三元运算符的表达式_java_02

【&,|, ^ ,~】图解

  • 算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位;
  • 算术左移 << 逻辑右移也叫无符号右移,运算规则是: 低位溢出,高位补 0;
  • >>> 逻辑右移也叫无符号右移,运算规则是: 低位溢出,高位补 0;
  • 特别说明:没有 <<< 符号 ;