JAVA语言的运算符分为:
1.算术运算符 + - * /(除) %(取余) ++ --
2.关系运算符 > < >= <= == !=
3.逻辑运算符 &&(短路与) &(按位与) ||(短路或) |(按位或) ! ^(异或相同为假, 不同为真)
4.位运算符 ^ ~(按位非 取反) & ||
5.赋值运算符 =
6.扩展赋值运算符 += -= /= *=
7.字符串连接运算符 +
&&(逻辑与) 与 &(按位与) 的区别:
Int a = 1;I
nt b = 2;
Boolean flag = A&b ;试讲a和b 变为二进制 再相与;
Int a = 1;
Int b = 2;
Boolean flag = A|b ;试讲a和b 变为二进制 在相或;
&&逻辑与是一旦前面是false,后面的表达式就不用计算,直接false;
||逻辑与是一旦前面是true,后面的表达式就不用计算,直接ture;
A++; //相当于a = a + 1;
++a; //相当于a = a + 1;
A=10;
Int c = a++; //这种情况是先使用,后自加 结果是c=10 a=11;
A=10;
Int c = ++a; //这种情况是先自加,后使用 结果是c=11 a=11
在这里说一下,三目运算符: 是从右到左 (expression) ? if-true-statment : if-flalse-statement ;
运算符的优先级:
编程语言的流程控制结构分为: 顺序结构, 分支结构, 循环结构.
分支结构:
If(条件){ }
If(条件){ } else { }
If(条件){ } else if(条件){ } else{ }
Switch(条件){Case 条件1: { break; }Case 条件2: { break; }Default:{ break; }}
循环结构:
While(条件){ }
Do{ }while();
For(初始化表达式;条件表达式;迭代表达式){ }
Foreach(数据类型 变量名:数组或者集合名){ }
面试题1: 如何switch中的case代码块中没有写break,会怎样?
答:小心case下坠,如果不写break,就会继续匹配执行.
面试题2:当case后的条件相同是编译能通过吗?
答:不会,会出现标签重复错误.
面试题3:Switch后的条件能使用long, String类型吗?
答:不行,switch后面case只需要一个int byte short char 类型,这会发生窄转化,报精度损失错误;Case 后面也不能使用String,因为JDK6以前(包括JDK6)不能使用String.
|