Java学习之路(三)运算符

  运算符虽然可以根据运算数的个数分为一目运算符、二目运算符、三目运算法。但是个人认为从实际上根据运算符的属性进行分类可能是更好的选择。

一、算术运算符

算术运算符名称举例
+加法1+1=2
-减法15-5=10
*乘法3*6=18
/除法36/4=9
%求余数(求模)13%3=1
++自增1int n=1;n++;++n;
自减1int n=10;n–;--n;

PS.

  1. 在除法运算中,如果除数与被除数都是整数,做整除运算。

  2. n++与++n的区别在于n++是先运算后赋值,而++n则是先赋值后运算。

    int n;
    int x;
    		
    // n++运算
    n = 0;
    x = 0;
    /* 可以拆分为下列表达式
     * x = x + n;	先运算
     * n = n + 1;	后赋值
     * */
    x = x + (n++);
    System.out.println("x=" + x);	// x=0
    System.out.println("n=" + n);	// n=1
    		
    // ++n运算
    n = 0;
    x = 0;
    /* 可以拆分为下列表达式
     * n = n + 1;	先赋值
     * x = x + n;	后运算
     * */
     x = x + (++n);
     System.out.println("x=" + x);	// x=1
     System.out.println("n=" + n);	// n=1
    

二、赋值运算符

赋值运算符名称举例
=赋值int n=1;
+=加等于int n=0; n+=1;
-=减等于int n=0; n-=1;
*=乘等于int n=1; n*=3;
/=除等于int n=100; n/=5;
%=取模等于int n=100; n%=3;

三、关系运算符

关系运算符名称表达式结果
>大于5>3true
<小于5>3false
>=大于等于5>=3true
<=小于等于5<=3false
==等于5==3false
!=不等于5!=3true

PS. 基本数据类型使用==来判定两个值是否相等,但引用数据类型通常重写equals()方法进行相等判断。

四、逻辑运算符

逻辑运算符名称表达式
&& 或 &n1 && n2;
|| 或 |n1 || n2
!!n

PS. && 与 & 的区别在于符号的两侧是否一定会执行。

boolean flagTrue = true;
boolean flagFalse = false;
/* false,两者的结果虽然相同,但是它们的运算规则不同
 * & 运算需要对两侧都进行运算,如果左侧为false,还需要对右侧进行判定后再返回false
 * && 运算如果左侧为false,则不对右侧进行判定,直接返回false
 */
boolean flag1 = flagFalse & flagTrue;	// 右侧一定执行
boolean flag2 = flagFalse && flagTrue;	// 右侧不一定执行

五、条件运算符

条件运算符名称表达式结果
布尔表达式?表达式1:表达式25>3?5:35

PS. 根据布尔表达式的值执行对应的表达式,如果为真,执行表达式1,反之则执行表达式2,执行表达式1或表达式2可以得到确定的返回值。

六、位运算符

位运算符名称表达式结果
<<左移5<<220
>>右移5>>21
>>>无符号右移5>>>30
&位与5&31
|位或5|37
^位异或5^36
~位非~5-6

PS.

  1. 位运算的本质是将运算数转换成二进制后再进行相应的运算。
  2. 根据位运算符可衍生出新的赋值运算符如:&=,|=,^=,>>=,<<=,>>>=等等。

七、运算符优先级

运算符优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值