Java运算符-Java300集笔记整理

目录

1. 算术运算符

2. 赋值及其扩展赋值运算符

3. 关系运算符

5. 位运算符

6. 字符串连接符

7. 条件运算符

8. 运算符优先级问题

运算符用来执行数学运算

运算符类型 表示
一元运算符 +,-,*,/,%(取余)
二元运算符 ++,--
赋值运算符 =
扩展运算符 +=,-=,*=,/=
关系运算符 >,<,>=,<=,==,!=
逻辑运算符 &&,||,!,^
位运算符 &,|,^,~,>>,<<,>>>
条件运算符 ?:
字符串连接符 +

1. 算术运算符

  • 整数运算

    • 如果两个操作数有一个为Long,则结果为Long

      public class TestOperator{
          public static void main(String[] args){
              //算术运算符
              int a = 2;
              long b = 4;
              long c = a+b; //如果int c = a+b会报错
          }
      ​
      }
    • 没有Long时,结果为int
  • 浮点运算

    • 如果两个数有一个为double,则结果为double

    • 只有两个操作数都为float,结果才为float

  • 取模运算

    • 操作数可以为浮点数,一般使用整数,结果是”余数“,”余数“符号和左边操作数相同,如7%3=1,-7%3=-1,7%-3=1

  • 算术运算中++(自增),--(自减)属于一元运算符,故只需要一个操作数

    public class TestOperator01{
        public static void main(String[] args){
            //一元算术运算符
            int d = 30;
            d++;   //d = d+1;
            System.out.println(d);
            d--;   //d = d-1;
            System.out.println(d);
            e = 10;
            int h = g++; //h=10, g++先赋值,再自增
            int i = ++g; //++g先自增,再赋值
            System.out.println(e);
            System.out.println(h);
            System.out.println(i);     
        }
    ​
    }

2. 赋值及其扩展赋值运算符

运算符 用法举例 等效表达式
+= a += b a = a+b
-= a -= b a = a-b
*= a *= b a = a*b
/= a /= b a = a/b
%= a %= b a = a%b
public class TestOperator02{
	public static void main(String[] args){
		int a = 3;
        int b = 4;
        a += b; //a = a+b
        System.out.println(a); //a=7
        
        a = 3;
        a *= b+3;  //a = a*(b+3)
        System.out.println(a); //a=21
	}
}

3. 关系运算符

运算符 含义 示例
== 等于 a==b
!= 不等于 a!=b
> 大于 a>b
< 小于 a<b
>= 大于或等于 a>=b
<= 小于或等于 a<=b

4. 逻辑运算符

逻辑运算的操作数和运算结果都是boolean值

运算符 表示 说明
逻辑与 & 两个操作数为true,结果为true,否则为false
逻辑或 | 两个操作数一个为true,结果为true
短路与 && 只要有一个为false,结果为false
短路或 || 只要有一个为true,结果为true
逻辑非 ! 取反,!false为true,!true结果为false
逻辑异或 ^ 相同为false,不同为true(异或很重要)
public class TestOperator03{
	public static void main(String[] args){
		boolean b1 = true;
		boolean b2 = false;
		System.out.println(b1&b2); //false
		System.out.println(b1|b2); //true
		System.out.println(!b2);   //true
        System.out.println(b1^b2); //true
	}
}

5. 位运算符

位运算是进行二进制位的运算

位运算符 说明
~ 取反
& 按位与
| 按位或
^ 按位异或
<< 左移运算符,左移1位相当于乘2
>> 右移运算符,右移1位相当于除2取商
public class TestOperator04{
	public static void main(String[] args){
		int a = 7;
		int b = 8;
		System.out.println(a&b);  //0
		System.out.println(a|b);  //15
		System.out.println(a^b);  //15
		System.out.println(~b);   //-9
        
        //移位
        int c = 5<<2;  //相当于 5*2*2=20
        System.out.println(c);
	}
}

6. 字符串连接符

"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

public class TestOperator05{
	public static void main(String[] args){
		String a = "3";
		int b = 4;
		System.out.println(a+b);  //34
		
		char c1 = 'h';
		char c2 = 'i'
		System.out.printlb(c1+c2);  //209,因为char不是String类型,仍为整数运算,所以返回数字,连接符的条件是字符串而不是字符
        System.out.printlb(""+c1+c2);  //hi,通过+"",将整个运算转换为字符串链接操作
	}
}

7. 条件运算符

语法格式:x?y:z

其中x为boolean类型表达式,先计算x的值,若为true,则整个运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

public class TestOperator06{
	public static void main(String[] args){
		int score = 80;
		String a = score>60?"pass":"no pass";
		System.out.println(a); //pass		
        
        if(score<60){
            a = 'no pass';
        }else{
            a = 'pass';
        }
        
        int x = -100;
        int flag = x>0?1:(x==0?0:-1);
        System.out.println(flag); //x = -100 -->  -1   x = 100 --> 1   x = 0 --> 0
        
	}
}

8. 运算符优先级问题

用括号吧,不记了

Guess you like

Origin blog.csdn.net/lipengfei0427/article/details/121334013