运算符

运算符优先级

最高优先级
. () {} ; ,
++ – ~ !(data type)
*/ %
<< >> >>> 位移
< > <= >= instanceof
== !=
&
^
|
&&
||
? :
=*= /= %=
+= -= <<= >>=
>>>= &= ^=
最低优先级

大致分类

  1. (),{}
  2. 单目运算 ++ --
  3. 算数运算符 +-*/%
  4. 位移运算符 >> >>> <<
  5. 比较运算符 (关系运算符) == != < > <= >=
  6. 逻辑运算符 && & || | ! ~ ^
  7. 三元运算符 条件a ? 语句1 : 语句2
  8. 赋值运算符 = += -= *= /= %=

除法/ 取模%

public class name {
public static void main(String[] args) {
// 双整数必然得到整数
System.out.println(20/3); // 6
// 带有一个浮点数则实现除法的结果带上浮点数
System.out.println(10.0/4); // 0.25

// 取模%
// 本质的公式:a%b = a -(a/b)*b
System.out.println(3%2); // 1
System.out.println(-3%2); // -1

/*检测是否类的对象(关系运算符)*/
boolean a = "hsp" instanceof String;
System.out.println(a);
}
}

逻辑运算符

各逻辑运算符介绍
符号 名称 阐释(个人版)
& 算数与 两边为true时为true,且无论结果如何,将所有的条件执行一遍
&& 逻辑与 同true为true,当左边为false时立即停止判断
| 算数或 有一边为true时为true,且执行判断完所有的条件
|| 逻辑或 有一个为true时为true,且左边为true时中断执行
!和~ 反转结果,true转false,false转true
^ 异或 和“&”相反,true和false同时出现时为true,否则为false
短路运算符与逻辑运算符的区别

1.短路运算符执行一旦达到条件立即中断。
2.逻辑运算符无论条件是否满足,全部的条件都执行一遍。
3.短路运算符较为常用。

// 举个例子
public class name {
public static void main(String[] args) {
int b = 1;
int c = 3;
if (1>b++&&c++ >3) {
System.out.println("通过!");
}
System.out.println(b);
System.out.println(c);
// 第一个条件不通过,但已经判断到了第一个条件,且为短路运算符,所以 b=2,c=3
if (1>b++&c++ >3) {
System.out.println("通过!");
}
System.out.println(b);
System.out.println(c);
// 第一个条件不通过,但为逻辑运算符,所以执行完所有的条件语句,结果为: b=3,c=4


}
}

三元运算符

语法格式为:条件语句 ? 执行语句1:执行语句2
当条件语句为true时,语句1执行;反之执行语句2
举个例子:

public class name {
public static void main(String[] args) {
int x =30;
int d = x > 1 ? 1234 : 3456;
// 很显然,x大于1,所以d的值为1234.
System.out.println(d); // 1234
// 如果x小于1,3456就会赋给d
}
}

位运算符

指二进制层面的运算,具体看 java学习日志-02 的位运算。
(学完可以去《Minecraft》建造二进制计算机了,当然,除非你有那闲空)