Java中常见的运算符

Java中常见的运算符

Java 语言支持如下运算符:

算术运算符: +,-,*,/,%,++,–

字符串连接运算符:+

关系(比较)运算符: >,<,>=,<=,==,!=

逻辑运算符: !,& , | , &&,||

赋值运算符: = ,+ =,- =,* =,/ =

条件运算符:(boolean达式)?(表达式1):(表达式2)

位运算符:<< , >> , >>>, & , | , ^ , ~

算数运算符

运算符运算范例结果
+正号+33
-负号b=4; -b-4
+5+510
-6-42
*****3*412
/5/51
%取模7%52
++自增(前):先运算后取值 自增(后):先取值后运算a=2;b=++a;a=2;b=a++;a=3;b=3a=3;b=2
- -自减(前):先运算后取值 自减(后):先取值后运算a=2;b=- -a;a=2;b=a- -;a=1;b=1a=1;b=2

练习:

 public static void main(String[] args){
        int i1 = 10,i2 = 20;
        int i = i1++;
        System.out.print("i="+i);//10
        System.out.println("i1="+i1);//11
        i = ++i1;
        System.out.print("i="+i);//12
        System.out.println("i1="+i1);//12

        i = i2--;
        System.out.print("i="+i);//20
        System.out.println("i2="+i2);//19
        i = --i2;
        System.out.print("i="+i);//18
        System.out.println("i2="+i2);//18
  }

比较运算符

运算符运算 范例 结果
==相等于 4==3 false
!=不等于 4!=3 true
<小于 4<3 false
>大于 4>3 true
<=小于等于 4<=3 false
>=大于等于 4>=3 true
instanceof检查是否是类的对象 “Hello” instanceof String true

比较运算符的结果都是boolean型,也就是要么是true,要么是false。

注意:比较运算符“==”不能误写成“=” 。

逻辑运算符

逻辑运算符:

&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或

aba&ba|b!aa^ba&&ba||b
truetruetruetruefalsefalsetruetrue
truefalsefalsetruefalsetruefalsetrue
falsetruefalsetruetruetruefalsetrue
falsefalsefalsefalsetruefalsefalsefalse

“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。

异或( ^ ):当左右都为true时,结果为false。
理解:异或,追求的是“异”!

赋值运算符

符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。

扩展赋值运算符: +=, -=, *=, /=, %=

思考1:

short s = 3; // 3是int  但是虚拟机支持将int类型3赋给short,byte
s=s+2;   //①s是short +2(int) 结果为int
s+=2;    //②s=s+2
//①和②有什么区别?
运算符用法举例等效的表达式
+=a += ba = a+b
-=a -= ba = a-b
*=a *= ba = a*b
/=a /= ba = a/b
%=a %= ba = a%b

思考2:

boolean b1 = false;//区分好==和=的区别。
if(b1=true){
	System.out.println("结果为真");
}else{
	System.out.println("结果为假");
}

思考3:

int i = 1;
i *= 0.1; i=i*0.1 = 0
System.out.println(i);//0
i++;
System.out.println(i);//1

条件运算符

语法: (条件表达式)? 表达式1:表达式2;

为true,运算后的结果是表达式1;
为false,运算后的结果是表达式2;

表达式1和表达式2为同种类型

条件运算符与if-else的联系与区别:
1)条件运算符可简化if-else语句
2)条件运算符要求必须返回一个结果。
3)if后的代码块可有多个语句

位运算

日常开发中位运算不是很常用,但是巧妙的使用位运算可以大量减少运行开销,优化算法.

位运算符用法
<<空位补0,被移除的高位丢弃,空缺位补0。
>>被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
>>>被移位二进制最高位无论是0或者是1,空缺位都用0补。
&二进制位进行&运算,只有1&1时结果是1,否则是0
|二进制位进行 | 运算,只有0 | 0时结果是0,否则是1
^相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
~正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反

运算符优先级

表达式的运算顺序

1 |
| ~ | 正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反 |

运算符优先级

表达式的运算顺序

在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值