009 运算符(自用)

009运算符

运算符是一种特殊的符号,用以表示数据间的运算、赋值和比较等。

常分为:

1.算术运算符

++a 和 a++

++a 先自加再运算 a++ 先运算在自加

弄清楚自加的规则,使用临时变量赋值

两道面试题

//面试题1,问:结果是多少?
int i = 1;// i -> 1
i = i++;//规则,使用临时变量:(1)temp = i  (2) i = i + 1  (3)i = temp
System.out.println(i);// 输出结果为 1
//面试题2
int i = 1;
i = ++i;//规则,使用临时变量:(1)i = i + 1  (2)temp = i  (3) i = temp 
System.out.println(i);// 输出结果为 2

2.赋值运算符 =

注意点:复合赋值运算符会进行类型转换。

//复合赋值运算符会进行类型转换
byte b = 3;
b += 2;//等价于b = (byte)(b + 2)

3.关系运算符【比较运算符】

  1. 关系运算符的结果都是布尔型,要么是true要么是false。

  2. 关系表达式 经常用在if结构的条件中或循环结构的条件中。

    ==!=<><=>=instanceof
    相等于不等于小于大于小于等于大于等于检查是否是类的对象

细节:

  1. 关系运算符的结果都是布尔型,要么是true要么是false。

  2. 关系运算符组成的表达式如’a

4.逻辑运算符

分为两组:1)短路与&& 短路或 || 取反 ! 2)逻辑与 & 逻辑或 | 逻辑异或 ^

aba&ba&&ba|ba||b!aa^b
truetrue
truefalse
falsetrue
falsefalse

a&b a&&b :同真则真

a|b a||b :一真则真

!a :取反

a^b :不同则真

&&和&的区别(短路与和逻辑与):(||和|类似)

  1. 短路与&&:如果第一个条件为false,则第二个条件不会判断,最终结果为false。
  2. 逻辑与&:不管第一个条件是否为false,第二个条件都要判断。效率低。
  3. 开发中,我们基本是用的是短路与,效率较高。

5.位运算符【需要二进制基础】

位运算符 >> << >>> 运算规则如下:

1)算数右移>> :低位溢出,符号位不变,并用符号位补溢出的高位。

2)算数左移<< :符号位不变,低位补0。

3)逻辑右移(无符号右移)>>> :低位溢出,高位补0。

4)特别说明,无 <<< 符号。

public class BitOpterator02{public static void main(String[] args){System.out.println(1 >> 2);//0   本质是1 / 2 / 2 = 0System.out.println(1 << 2);//4   本质是1 * 2 * 2 = 4System.out.println(4 << 3);//32System.out.println(15 >> 2);//3}
}

6.三元运算符

6.1基本语法

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

6.2运算规则

1)如果条件表达式为true,运算后结果为表达式1。

2)如果条件表达式为false,运算后结果为表达式2。

6.3三元运算符使用细节:

1)表达式1和表达式2要为可以赋给接受变量的类型(或可以自动转化)。

2)三元运算符可以转换成if——else语句

例题:实现三个数的最大值

//三元运算符练习
public class TernaryOperatorExercise{public static void main(String[] args) {int a = 3;int b = 5;int c = 10;int max =c > (a > b ? a : b) ? c :(a > b ? a : b);System.out.println("最大值为 :" + max);}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部