JavaSE(第三章)

1、什么是运算符

对操作数进行操作时的符号。

2、算术运算符

2.1基本四则运算符:+ - * / %

		int a =10;
        int b =20;
        System.out.println(a+b);//加 30
        System.out.println(a-b);//减 -10
        System.out.println(a*b);//乘 200
        System.out.println(a/b);//除 0
        System.out.println(a%b);//去摸 10  -->相当于除法的余数

注意:

  • 都是二元运算符,使用时必须要有左右两个操作数。
  • int / int结果还是 int 类型,向下取整,小数点后舍掉。
  • 做除法和取模时,右操作数不能为0。
  • % 还可以对 double类型取模,但没有意义。
  • 两侧操作数类型不一致时,向类型大的提升。(类型自动转换)

2.2增量运算符:+= -= *= /= %=

//操作完成后,结果赋值给做操作符
 		int a =1;
        a +=2;// a = a+2
        
        a -=1;// a = a-1
        
        a *=3;// a = a*3
        
        a /=3;// a = a/3
        
        a %=3;// a = a%3
  • 变量才能使用该运算符,常量不能使用。

2.3 自增/自减运算符

  int a =1;
        a++;//后置++ a+1
        System.out.println(a++);// 控制显示 2 ,a=3;先使用在 +1

        ++a;//前置++ a+1
        System.out.println(++a); // 5, a=5;先 +1 在使用
        // -- 同理  
        //-1

注意:

  • 单独使用,前置++(- -) 和 后置++(- -) 没有区别。
  • 混合使用,前置++(- -)先+(-)1,在使用;后置++(- -)先使用,在+(-)1。
  • 只用变量才能使用,常量不允许。

3、关系运算符

 // 主要有六个: ==、!=、<、>、<=、>=
        // 计算结果是 true 和 false。
        int a =10;
        int b =20;
        //在 Java中 = 表示赋值,
        // == 表示相等
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
        System.out.println(a<b);//true
        System.out.println(a>b);//false
        System.out.println(a<=b);//true
        System.out.println(a>=b);//false
  • 需要多次判断时,不能连着写。如:3<a<5,在Java程序中时错误的。

4、逻辑运算符

逻辑运算符主要有三个:&&、||、!,返回结果时boolean类型。

4.1逻辑与 &&

表达式1表达式2结果
		int a =1;
        int b =2;
        System.out.println(a==1 && b==2);//左真 右真,则真
        System.out.println(a==1 && b>100);//左真 右假,则假
        System.out.println(a>100 && b==2);//左假 右真,则假
        System.out.println(a>100 && b>100);//左假 右假,则假

4.2逻辑或 ||

表达式1表达式2结果
		int a =1;
        int b =2;
        System.out.println(a==1  ||  b>100);//左真 右假,则真
        System.out.println(a>100 ||  b==2);//左假 右真,则真
        System.out.println(a>100 &&  b>100);//左假 右假,则
        System.out.println(a==1  ||  b==2);//左真 右真,则真

4.3逻辑非 !

表达式
 		int a =1;
        System.out.println(!(a==1));// false
        System.out.println(!(a==2));//true

4.4 短路求值

&& 和 || 遵守短路求值规则

  • &&,左侧表达式值为 false,则表达式结果一定是 false,无需计算右侧表达式。
  • ||,左侧表达式值为 true,则表达式结果一定是 true,无需计算右侧表达式。
  • & 和 | 表达式结果为 boolean时,也表示逻辑运算,但不支持短路

5、位运算

Java 中数据存储的最小单位时字节,而数据操作的最小单位时比特位,字节是最小的存储单位,每个字节是由8个二进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。

  • 位运算符主要有四个:& | ~ ^,除 ~ 是一元运算符外,其余都是二元运算符。

  • 位操作表示 按二进制位运算,计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是在按照二进制的每一位依次进行计算。

  • 注意:当 & 和 | 的操作数为整数(int,short,long,byte)的时候,表示按位运算,当操作数为 boolen 的时候,表示逻辑运算。

5.1 按位与 &

  • 两个二进制位都是 1,则结果为1,否则为零
int a =10;
int b =20;
System.out.println(a & b);//0

5.2 按位或 |

  • 两个二进制位都是 0,则结果为0,否则为1
int a =10;
int b =20;
System.out.println(a & b);//30

5.3按位取反 ~

  • 该为 0,则为1;为1,则0
int a = 0Xf;
System.out.println(~a);//-16

6、移位运算

  • 以为运算符有三个:<<、>>、>>>,都是二元运算符,且都是按照二进制与比特位来运算的。
  1. 左移<<:左测为不要了,右侧补0

注意:向左移位时,丢弃的时符号位,因此正数左移可以会变成负数。

  1. 右移>>:右侧为不要了,左侧补(整数补0,负数1)
  2. 无符号右移>>>:最右侧位不要了,左侧补0

7、条件运算符

表达式1 ?表达式2:表达式3

  • 表达式1的值为 true 时,整个表达式的值为,表达式2
  • 表达式1的值为 false 时,整个表达式的值为,表达式3

8、运算符的优先级

在一条表达式中,各个运算符可以混合起来进行运算,但是运算符的优先级不同。

  • 运算符之间是有优先级的. 具体的规则不必 [刻意] 记忆。 在可能存在歧义的代码中加上括号即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值