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 += ba = a+b
-=a -= ba = a-b
*=a *= ba = a*b
/=a /= ba = a/b
%=a %= ba = 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. 运算符优先级问题

用括号吧,不记了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值