一、java运算符

1. 算术运算符

符号 含义 例子 结果
+ 加法 int a = 5 + 3; a = 8
- 减法 int b = 5 - 3; b = 2
* 乘法 int c = 5 * 3; c = 15
/ 除法 int d = 5 / 3; d = 1
% 取余 int e = 5 % 3; e = 2
++ 自增 int f = 5; f++; f = 6
-- 自减 int g = 5; g--; g = 4
// ++ -- 自增 自减   一元运算符
        int a = 3;
        int b = a++;
        int c =++a;
        System.out.println(a);//a=5
        System.out.println(b);//b=3
        System.out.println(c);//c=5
        //int a = 3; 初始化a,a=3
        //int b = a++  相当于b = a;后a = a+1(a自增)。即b=3,a=3+1=4 加号在后,先赋值后自增
        //int c =++a   相当于a = a+1(a自增)=4+1=5,后int c = a =5  加号在前,先自增后赋值

2. 赋值运算符

符号 含义 例子 等价于
= 直接赋值 int a = 5; -
+= 加后赋值 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;
&= 按位与后赋值 a &= 3; a = a & 3;
|= 按位或后赋值 a |= 3; a = a | 3;
^= 按位异或后赋值 a ^= 3; a = a ^ 3;
<<= 左移后赋值 a <<= 2; a = a << 2;
>>= 右移后赋值 a >>= 2; a = a >> 2;

3. 关系运算符

符号 含义 例子 结果
== 等于 5 == 3 false
!= 不等于 5 != 3 true
instanceof 检查对象类型 String s = "abc";
s instanceof String
true
> 大于 5 > 3 true
< 小于 5 < 3 false
>= 大于等于 5 >= 3 true
<= 小于等于 5 <= 3 false

4. 逻辑运算符

符号 含义 例子 结果
&& 逻辑与 (5 > 3) && (2 < 4) true
|| 逻辑或 (5 < 3) || (2 < 4) true
! 逻辑非 !(5 > 3) false
public static void main(String[] args) {
        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d); //d = false
        System.out.println(c); //c = 5,因为c<4已经为false,所以c++不会执行
    }

5. 位运算符

符号 含义 例子(a=5 二进制 0101b=3 二进制 0011 结果(二进制)
& 按位与 a & b 00011
| 按位或 a | b 01117
^ 按位异或 a ^ b 01106
~ 按位取反 ~a 1010-6
<< 左移 a << 2 01010020
>> 右移 a >> 1 00102
>>> 无符号右移 a >>> 1 00102
public class Demo06 {
    public static void main(String[] args) {
        //& 按位与, |按位或,^按位异或,~按位取非
        /*
        A = 0011 1100
        B = 0000 1101
        A&B 0000 1100   都为1才是1,否则为0
        A|B 0011 1101   都是0才是0,否则为1
        A^B 0011 0001   相同为0,否则为1
        ~B  1111 0010   对B取反
        ---------------------------------------
        位运算效率高
        0000 0000    0
        0000 0001    1
        0000 0010    2
        0000 0100    4
        0000 1000    8
        0001 0000    16
        "<<" 相当于*2
        ">>" 相当于/2

         */
        System.out.println(2<<3); //2* 2*2*2
    }
}

6. 条件运算符(三元运算符)

符号 含义 例子 结果
? : 条件判断后赋值 int max = (5 > 3) ? 5 : 3; max = 5
public static void main(String[] args) {
        //三元运算符 x ? y :z    如果x==true,则结果为y,否则为z
        int score = 80;
        String type = score<60 ? "不及格" : "及格";
        System.out.println(type);
    }

注:Java里没有2^3这种幂的表示方法。要表示幂需要使用工具类Math,Math里有很多方法

double pow = Math.pow(2,3);

运算符优先级(从高到低)

  1. 括号()
  2. 一元运算符++--+(正)、-(负)、!~
  3. 算术运算符*/%+-
  4. 移位运算符<<>>>>>
  5. 关系运算符><>=<=instanceof==!=
  6. 位运算符&^|
  7. 逻辑运算符&&||
  8. 条件运算符? :
  9. 赋值运算符=+=-= 等。

使用括号 () 可以明确指定运算顺序,提高代码可读性。

注意:

public class Demo07 {
    public static void main(String[] args) {
        //字符串连接符"+"
        int a = 10;
        int b = 20;
        System.out.println(""+a+b);//输出结果:1020
        System.out.println(a+b+"");//输出结果:30
    }

二、新建package(包)

image