运算符:
- 赋值运算符
- 逻辑运算符
- 算术运算符
- 关系运算符
- 位运算符
- 其它运算符
(1).算术运算符
注意: 自增与自减区别:
1.1
public class Add{
public static void main(String[] args){
int a =1;//定义变量;
int b = ++a;//自增运算
int c = 2;
int d = --c;//自减运算
System.out.println(b);
System.out.println(d);
}
运行结果:
2
1
1.2
- 前缀自增/自减法(++a,- -a): 先在a的基础上进行++或者- -运算,再进行表达式运算。
- 后缀自增/自减法(a++,a- -):先在a的基础上进行表达式运算,再进行++或者- -运算。
(2).关系运算符
(3).逻辑运算符
(4).赋值运算符
(5).条件运算符(三目运算)
申明一个变量 = (判断与否) ? true : false
例子:
public class Demo {
public static void main(String[] args){
int a = 100;
// 如果 a 等于 50 成立,则设置 b 为10,否则为 20
int b = (a == 50) ? 10 : 20; //申明一个变量 = (判断与否) ? true : false
System.out.println( b );
}
}
运行结果:
20
(6).位运算符
定义:程序中所有内存都是以二进制形式存在的。
优点:运行速度是计算中最快的。
Java供应的位运算符分逻辑运算符和移位运算符。
逻辑运算符:
位与( & ) 、位或( | )、位非( ~ )、位异或( ^ )
移位运算符
左移( << )、右移( >> ) 、无符号右移( >>> )
1.位与(&):相同位上的数相乘的结果。
System.out.println(5 & 9); //j结果转换成十进制为1
将2个操作数和结果转换为二进制进行比较:
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
9转换为二进制:0000 0000 0000 0000 0000 0000 0000 1001
1转换为二进制:0000 0000 0000 0000 0000 0000 0000 0001
2.位或( | ):第一个操作数的的第n位和第二个操作数的第n位只要有一个是1,那么结果的第n位为也为1,否则为0。
System.out.println(5 | 9); //结果位13
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
9转换为二进制:0000 0000 0000 0000 0000 0000 0000 1001
13转换位二进制: 0000 0000 0000 0000 0000 0000 0000 1101
3.位异或( ^ ):第一个操作数的的第n位和第二个操作数的第n位相反,那么结果的第n为也为1,否则为0。
System.out.println(5 ^ 9);//j结果为12
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
9转换为二进制:0000 0000 0000 0000 0000 0000 0000 1001
12转换为二进制:0000 0000 0000 0000 0000 0000 0000 1100
4.位非( ~ ):操作数的第n位为1,那么结果的第n位为0。
==注意!:==位非是一元操作符
System.out.println(5 ~);//结果为-6
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
(-6)转换为二进制:1111 1111 1111 1111 1111 1111 1111 1010
5.左移( << )
System.out.println(5<<2);//运行结果为20
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
然后左移2位后,低位补0:
转换后进行左移: 0000 0000 0000 0000 0000 0000 0001 0100
换算成10进制为20。
如何转化成十进制:
如何转换成二进制:
6.右移( >> )
System.out.println(5>>2);//运行结果是1
5转换为二进制:
0000 0000 0000 0000 0000 0000 0000 0101
然后右移2位,高位补0:
0000 0000 0000 0000 0000 0000 0000 0001