目录
常见的运算符:
算术运算符,关系运算符,逻辑运算符,赋值运算符,条件运算符,字符串连接运算符
算术运算符:
+ | 把两个操作数相加 |
---|---|
- | 从第一个操作数中减去第二个操作数 |
* | 把两个操作数相乘 |
/ | 分子除以分母 |
% | 取模运算符,整除后的余数 |
++ | 自增运算符,整数值增加 1 |
-- | 自减运算符,整数值减少 1 |
设A:int A = 10;
设B:int B = 20;
设结果int resulf = 0;
加法运算:resulf = A + B; resulf结果:30
++和--的作用:
++和--是可以出现在变量的前面也可是出现在后面:
结果为:
如果++出现在变量前后面是先进行赋值运算再进行变量自加1
public class 算术运算符 { public static void main(String[] args) { int A = 10; int N = A++; /* 这里A++之后的值是11 而N的值依然是10 */ } }
结果:
如果是++在前面则是先变量自增1在进行赋值运算操作
则结果为
--的话同理
关系运算符:
关系运算符的运算结果全为布尔类型(boolean)true(真)或者false(假)不可能是其他类型
== | 检查两个操作数的值是否相等,如果相等则条件为真。 |
---|---|
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 |
设A为int A = 10;
设B为int B = 10;
设C为int C = 30;
按以上执行结果:
逻辑运算符
&& | 称为短路与运算符。如果两个操作数都为真,则条件为真。但是第二个条件不会执行。 |
---|---|
|| | 称为短路或运算符。如果两个操作数中有任意一个非零,则条件为真。但是第二个条件不会执行。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 |
& | 成为逻辑与运算符。如果两个操作数都非零,则条件为真。 |
---|---|
| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 |
逻辑运算符两边要求都是布尔类型表达式,并且最终的运算结果也是布尔类型表达式,这是逻辑运算符的特点。
比如100>50 & 100>99结果为真
短路与的意思是如果&&两边的布尔表达式左边的表达式是假false那右边的表达式会短路 就不会执行了
public class main { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a > b && a < b++); //a>b为假 System.out.println(b); //输出结果为20而不是21 } }
赋值运算符
赋值运算符包括“基本赋值运算符”和“扩展赋值运算符”
操作符 | 描述 | |
---|---|---|
= | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | |
+ = | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | |
- = | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | |
* = | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | |
/ = | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | |
%= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 |
基本赋值运算符:=
扩展赋值运算符:
+=
-=
*=
/=
%=
注意:扩展赋值运算符在编写的时候两个符号之间不能有空格
赋值运算符=右边优先级比较高,先执行右边的表达式
扩展运算符原理:
int a = 10; a += 10; //这里的意思就是a = a + 10; 其他扩展赋值运算符同理
三目运算符
三目运算符:条件运算符
语法格式:布尔表达式 ? 表达式1:表达式2
主要看布尔表达式,如果布尔表达式的结果为真,则执行表达式1
如果布尔表达式为假,则执行表达式2
字符串连接运算符
字符串连接运算符就一个符号:+
作用1:求和
作用2:字符串的拼接
int a = 10; String num = "1001"; System.out.println(a+num); //则结果为101001 注意:字符串求和完成后还是一个字符串并不是其他类型
位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。
操作符 | 描述 | |
---|---|---|
& | 如果相对应位都是1,则结果为1,否则为0 | |
| | 如果相对应位都是 0,则结果为 0,否则为 1 | |
^ | 如果相对应位值相同,则结果为0,否则为1 | |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 |
int a = 60; int b = 13; 位运算就是操作数据的二进制位 a的二进制位是00111100; b的二进制位是1101; 而a&b的值就是 00111100 00001101 ------ 00001100 结果为12 a|b的值就是 00111100 00001101 ------ 00111101 结果为61 a^b的值是 00111100 00001101 ------ 00110001 结果为49 a<<2的值为 00111100向左移动2位自动补0 11110000为240 a>>2的值为 00111100向右移动2位 1111为15 a>>>2的值为 00001111为15