1. 算术运算符
案例一:获取整型
321各位数值位的数
int value = 321;
// 百位
int hundreds = (int)(value/100);
// 十位
int tens = (int)(value%100/10);
// 个位
int units = (int)(value%10);
案例二:计算下面i的值
int i =1;
i = i++;
System.out.println(i) // 1
i=i++在内存中的计算规则如下:
- 在内存中新开辟一个变量
temp,并将i的值赋值给temp。这时i = 1;temp=1; - 执行
i+=1,这时i=2;temp=1; - 将temp的值重新赋值给i,这时
i=1;temp=2;
2. 逻辑运算符
📓
&&和&都可以表示与,但他们是有区别的,共同点是当且仅当他们两边的条件都成立的时候最终结果才是true; 不同点是&&只要是第一个条件不成立为false,就不会再去判断第二个条件; 而&是判断所有条件后才会给出结果。||与|的区别也是如此。
3. 关系运算符
- 除以上之外还有一个特殊的运算符:
对象 instanceof 类,作用是判断该对象是否是该类的实例。
4. 三元运算符
三元运算只有一个
expression1 ? expression2 : expression3
5. 按位运算符
&:按位与,当两位都为1时才返回1。
// 按位与
int a = 1;
int b = 1;
int c = a&b;
System.out.println(c); // 1
|:按位或,两位中只要有一位为1就返回1。
// 按位或
int a2 = 1;
int b2 = 0;
int c2 = a2|b2;
System.out.println("a2|b2:"+c2); //a2|b2:1
^:按位异或,当两位相同时返回0,不同时返回1。
// 按位异或
int a3 = 1;
int b3 = 0;
int c3 = a3^b3;
System.out.println("a3^32:"+c3); //a3^32:1
~:按位非:单目运算符,将操作数的每个位(包括符号位)全部取反。
// 按位非
int a4 = -2;
int c4 = ~a4;
System.out.println("~a4:"+c4);//~a4:1
>>:右移运算符<<:左移运算符>>>:无符号右移运算符
当移位运算不发生有效位丢失时,左移n位就相当于乘2的n次方,右移n位就相当于除2的n次方。