目录
加法运算符:+
减法运算符:-
乘法运算符:*
注意:
除法运算符:/
注意:
取模运算符:%
注意:
算术运算符有:+=,-=,*=,/=,%=
例如:a*=12+9 ->a=a*(12+9)
注意:
自增运算符:++a(前置自增),a++(后置自增)
自减运算符:--a(前置自减),a--(后置自减)
这类运算符的结果都是先将变量进行加1或者减1,然后再将运算结果赋值给该变量。
那么前置自增和后置自增到底有什么区别?
- public static void main(String[] args) {
- int a=1;
- int b=a++;
- System.out.println(a);
- System.out.println(b);
- }
运行结果:

- public static void main(String[] args) {
- int a=1;
- int b=++a;
- System.out.println(a);
- System.out.println(b);
- }
运行结果:

这两个的区别主要是参与表达式运算时,前置自增是先进行加一运算,在进行相关表达式的计算,但是后置自增,是先进行相关表达式计算,再进行加一运算,前置和后置对于自增运算变量本身并没有较大区别,但是对于其所参与的表达式的值有影响。
所以,对于上述例子,第一段代码是先对b进行赋值运算,再自增,故a=1,b=2;但是在第二段代码中,是先对a进行自增运算,此时a的值为2,再进行赋值,故b的值为2。
关系运算符包含有:
==、!=、>、>=、<、<=
注意:
通俗来说,关系运算符主要功能时进行判断。
逻辑与:&&
注意:
- public static void main(String[] args) {
- int a=0;
- int b=1;
- System.out.println((a==b)&&(a==(a++)));
- System.out.println(a);
- }
运行结果:

分析:由于a==b的值为false,&&便不会执行后面的代码,所以a=1。
- public static void main(String[] args) {
- int a=1;
- int b=1;
- System.out.println((a==b)&&(a==(a++)));
- System.out.println(a);
- }
运行结果:

分析:由于a==b的值为true,&&便会执行后面的代码,所以a=2。
逻辑或:||
注意:
由于||与&&类似,便不再进行赘述。
逻辑非:!
注意:

由于在计算机中利用二进制存储数据信息,八位二进制为一个字节,在进行位运算时,首先需要将要运算的数字转换为二进制数,再进行运算。
按位与:&
- public static void main(String[] args) {
- int a=3;
- int b=5;
- System.out.println(a&b);
- }
运行结果:
![]()
解析:
&的两端可以是布尔表达式,但是它并不遵守短路运算,&两端的布尔表达式都会执行 ,同样要求只有&两端布尔表达式都为true时,结果才是true。
按位或:|
- public static void main(String[] args) {
- int a=3;
- int b=5;
- System.out.println(a|b);
- }
运行结果:
![]()
解析:

|的两端可以是布尔表达式,但是它并不遵守短路运算,| 两端的布尔表达式都会执行 ,同样要求只有|只要有一端布尔表达式为true时,结果是true。
按位取反:~
- public static void main(String[] args) {
- int a=3;
- System.out.println(~a);
- }
运行结果:

解析:
按位异或:^
^运算的规则是相同为0,不同为1。
- public static void main(String[] args) {
- int a=3;
- int b=5;
- System.out.println(a^b);
- }
运算结果:
![]()
解析:

左移运算符:<<
运算规则:向左移位,右侧补0。
- public static void main(String[] args) {
- int a=3;
- System.out.println(a<<1);
- }
运行结果:
![]()
解析:

右移运算符:>>
运算规则:向右移位,左侧补符号位
- public static void main(String[] args) {
- int a=3;
- System.out.println(a>>1);
- }
运行结果:
![]()
解析:

无符号右移:>>>
运算规则:向右移位,左侧补0
注意:没有无符号左移
条件运算符:
表达式1?表达式2:表达式3
运算规则:
要求:表达式2和表达式3必须为同类型表达式,除非能发生隐式转换,还有条件运算符要有计算结果。
例题解析:
- public static void main(String[] args) {
- int a=10;
- int b=21;
- int c=a<b?a>9?11:b:a;
- System.out.println(c);
- }
运行结果: 11
这个题目首先判断a9的判断,满足则c=11。