+ - * / % ++ --

重点:++

++无论出现在变量前还是后,只要++运算结束,一定会自加1.

            int i = 10;
            i++;
            System.out.println(i); // 11
                            int k = 10;
            ++k;
            System.out.println(k); // 11

            ++出现在变量前:
                int i = 10;
                int k = ++i;
                System.out.println(k); // 11
                System.out.println(i); // 11
            
            ++出现在变量后:
                int i = 10;
                int k = i++;
                System.out.println(k); // 10
                System.out.println(i); // 11
            
            int i = 10;
            System.out.println(i++); // 10
            解开以上题目的窍门是什么?拆代码
                int temp = i++;
                System.out.println(temp); // 10
                System.out.println(i); // 11
            
            int i = 10;
            System.out.println(++i);
            会拆代码:
                int temp = ++i;
                System.out.println(temp); // 11

关系运算符:

> >= < <= == !=

结果都是布尔类型。true/false

逻辑运算符:

& | ! && ||

逻辑运算符要求两边都是布尔类型,并且最终结果还是布尔类型。

左边是布尔类型 & 右边还是布尔类型 -->最终结果还是布尔类型。

& 两边都是true,结果才是true

| 一边是true,结果就是true

! 取反

&&实际上和&运算结果完全相同,区别在于:&&有短路现象。

左边的为false的时候:&& 短路了。

左边为true的时候:|| 短路了。

赋值运算符:

= += -= *= /= %=

重要规则:

扩展赋值运算符在使用的时候要注意,不管怎么运算,最终的运算结果类型不会变。

byte x = 100; // byte最大值127

x += 1000; // 编译可以通过,x变量还是byte类型,只不过损失精度了。

x += 1000; 等同于: x = (byte)(x + 1000);
                
int i = 10;

i += 10; // 等同于:i = i + 10; 累加。

三目运算符:

布尔表达式 ? 表达式1 : 表达式2

布尔表达式为true,选择表达式1作为结果。

反之选择表达式2作为结果。

字符串连接运算符:

+

+两边都是数字,进行求和。

+有一边是字符串,进行字符串的拼接。

+有多个的话,遵循自左向右依次执行:1 + 2 + 3

如果想让其中某个加号先执行,可以添加小括号:1 + (2 + 3)

注意:字符串拼接完之后的结果还是一个字符串。

技巧:怎么把一个变量塞到一个字符串当中。

String name = "jackson";
System.out.println("登录成功,欢迎"+name+"回来");

怎么接收用户键盘输入?

java.util.Scanner s = new java.util.Scanner(System.in);

// 接收整数

int i = s.nextInt()

// 接收字符串

String str = s.next();