一、表达式1. 概念由变量、运算符、字面值组成的式子运算后会产生一个结果。两变量参与运算结果类型规则如果参与运算的变量有一个为 double 类型结果就是 double 类型如果没有 double 有一个为 float 类型结果类型为 float如果没有 double/float 有一个为 long 类型结果类型为 long其余所有情况结果全都是 int 类型代码示例byteb1;byteb2b1;// 编译报错b1运算结果是int类型不能直接赋值给byte二、运算符1. 算术运算符“ - * / %注意 两端只要有一个是 String 字符串类型就代表字符串拼接/连接。2. 赋值运算符 - * / % 重点 等综合运算符没有自动类型提升会隐式强制转换面试题对比// ①byteb1;bb1;// 编译不通过b1结果是int类型int无法直接赋值给byte// ②byteb1;b1;// 编译通过复合赋值自动强转结果b23. 一元运算符 自增、 – 自减a 先使用再加1inta1;intca;// 等价于 int c a; a a1;// 结果c1a2a 先加1再使用开发时只关注变量自身增减 a 和 a 无区别面试重点考察运算顺序区别。4. 关系运算符 !作用判断两个变量关系是否成立返回值关系成立返回 true 不成立返回 false 结果为 boolean 类型布尔表达式用关系运算符连接变量返回布尔值的表达式5. 逻辑运算符 短路与两边都为true才为true左边为false右边不执行|| 短路或两边有一个为true就为true左边为true右边不执行! 逻辑非对结果取反 非短路与两边都为true才为true无论左边结果右边必执行| 非短路或两边有一个为true就为true无论左边结果右边必执行面试题 和 的区别相同点都要求两边布尔表达式同时为 true 最终结果才为 true不同点 是短路运算符第一个表达式为 false 后面表达式不再执行 是非短路运算符不管前面结果如何后面表达式必须执行6. 条件运算符三元运算符执行原理布尔表达式结果为 true → 执行表达式1布尔表达式结果为 false → 执行表达式2三、Scanner 扫描器控制台键盘输入1. 使用步骤创建扫描仪java.util.Scannerscnewjava.util.Scanner(System.in);2. 常用输入方式intasc.nextInt();// 输入整数doublessc.nextDouble();// 输入小数Stringssc.next();// 输入字符串(不含空格)Stringssc.nextLine();// 输入整行字符串(可带空格)charcsc.next().charAt(0);// 输入单个字符