一.运算符
-
算数运算符
- 算数运算符用在数学表达式中,它们的作用和在数学中的作用一样。
操作符 描述 例子 + 两数相加 1+1=2 - 两数相减 2-1=1 * 两数相乘 1*1=1 / 两数相除 1/1=1 % 两数相除的余数 2%1=0 ++ 自增 ++1=2和1++=2 – 自减 – 2=1和2-- =1 public class Test(){ public void medth(){ int a=2; int b=2 //这里会输出4 System.out.println(a+b); //这里会输出0 System.out.println(a-b); //这里会输出4 System.out.println(a*b); //这里会输出1 System.out.println(a/b); //这里会输出0 System.out.println(a%b); } }
- ++就是自身加1(每次++都是在自身的基础上+1)
**++在前先自身 +1,然后进行赋值 **
++在后先进行赋值,然后在自身 +1
public class Test(){ //实现++在后面 public void medth(){ int a=2; int b=0; b=a++; //此时的b=2 a先将自己赋值给了b 然后自身在加一 //此时的a=3 输出为2===3 System.out.println(b"==="a); } //实现++在前面 public void medth(){ int a=2; int b=0; b=++a; //此时的b=3 a在自身=2的基础上加了1 然后在赋值给b //此时的a=3 输出为3===3 System.out.println(b"==="a); } }
- –就是自身减1(每次–都是在自身的基础上-1)
–在前自身先 -1 然后进行赋值
–在后先进行赋值 然后自身在 -1
public class Test(){ //实现--在后面 public void medth(){ int a=2; int b=0; b=a--; //此时的b=2 a先将自己赋值给了b 然后自身在减1 //此时的a=1 输出为2===1 System.out.println(b"==="a); } //实现--在前面 public void medth(){ int a=2; int b=0; b=--a; //此时的b=1 a在自身=2的基础上减了1 然后在赋值给b //此时的a=1 输出为1===1 System.out.println(b"==="a); } }
-
赋值运算符
赋值运算符的作用就是将常、变量或表达式的值赋给某一个变量
操作符 描述 例子 = 赋值 a=3 += 加等于 a+=3(可以理解为a=a+3) -= 减等于 a-=3(可以理解为a=a-3) *= 乘等于 a*=3(可以理解为a=a*3) /= 除等于 a/=3(可以理解为a=a/3) %= 模等于 a%=3(可以理解为a=a%3) public class Test(){ // public void medth(){ int a=1; //这里输出5 System.out.println(a=5); //此时的a=5 所以a+=5的值为10 (a=a+5) System.out.println(a+=5); //此时的a=10 所以a-=5的值为5 (a=a-5) System.out.println(a-=5); //此时的a=5 所以a*=5的值为25 (a=a*5) System.out.println(a*=5); //此时的a=25 所以a/=5的值为5 (a=a/5) System.out.println(a/=5); //此时的a=5 所以a%=5的值为0 (a=a%5) System.out.println(a%=5); } }
-
关系运算符
关系运算符用来比较判断两个变量或常量的大小,关系运算符是二元运算符,运算结果是boolean型,当运算符对应的关系成立的时,运算结果是true,如果不成立是false
操作符 描述 例子 > 大于运算符 a>b >= 大于或等于运算符 a>=b < 小于运算符 a<b <= 小于或等于运算符 a<=b == 相等运算符 a==b != 不相等运算符 a!=b public class Test(){ public void medth(){ int a=1; int b=2; //输出false System.out.println(a>b) //输出false System.out.println(a>=b) //输出true System.out.println(a<b) //输出true System.out.println(a<=b) //输出false System.out.println(a==b) //输出true System.out.println(a!=b) } }
-
逻辑运算符
把多个条件联合判断,用来判断条件是否成立
操作符 描述 例子 && 短路与:两个表达都是true才返回true a>1&&a!=3 || 短路或:只要有一个表达式为true就返回true a>1||a!=3 ! 逻辑非:如果表达式为ture则返回false 反之返回ture !
public class Test(){
public void medth(){
int a=2;
int b=1;
//a<b为false a!=b为true 这里输出的是false
System.out.println(a<b&&a!=b);
//a<b为false a!=b为true 这里输出的是true
System.out.println(a<b||a!=b);
//a<b为false a!=b为true 这里输出为false
System.out.println(a<b&a!=b);
}
}
注:逻辑运算符操作的都是boolean类型的变量,而且结果也是boolean类型
位运算符主要针对二进制,从表面上看似乎有点像逻辑运算符,但是逻辑运算符是针对两个关系运算符来行进运算,而位运算符主要针对两个二进制数的位进行逻辑运算
操作符 | 描述 | 例子 |
---|---|---|
& | 逻辑与:两个表达式都为true时才为true | a>1&a!=3 |
| | 逻辑或:有一个表达式为true时就返回true | a>1|a!=3 |
^ | 逻辑异或:当两个表达式不相同的时候返回true 否则返回false | a>1^a!3 |
~ | 非:0=1,0=1 | |
>> | 右移 :各二进制位全部右移N位,若值为正,则在高位插入0,若值为负,则在高位插入1 | |
<< | 左移 :各二进制位全部左移N位,高位丢弃,低位补0 | |
>>> | 无符号右移 :各二进制位全部右移N位,无论正负,都在高位插入0 |
&&、&、||、|的区别:
&和|:不管左边的表达式是true还是false,右边的表达式也要执行
&&和||:只要执行左边的表达式,如果为true在继续执行右边的表达式,如果为false就直接返回flase,不会再执行右边的表达式