一、运算符
1. 算术运算符
+,-,/,* % 取余,取模 5%2 --> 1
10%5 --> 0
11%3 --> 2
123 ++,–
单独使用时,在前在后都一样 int a = 5;
a++;
++a;
123 被使用时,在前在后不一样
++在前,先赋值,再使用 int a = 10;
System.out.println(++a); // 11
-------------------------
int a = 10;
int b = ++a; // ++在前,先使用,后赋值
System.out.println(a); // 11
System.out.println(b); // 11
1234567 ++在后,先使用,再赋值 int a = 10;
System.out.println(a++); // 10
-------------------------
int a = 10;
int b = a++; // ++在前,先使用,后赋值
System.out.println(a); // 11
System.out.println(b); // 10
1234567 延展题(无论++在前还是在后,i 在第二次被使用的时候 i 已经改变了) int i = 10;
System.out.println(i + i++);// 20
-------------------
int i = 10;
System.out.println(i++ + i);// 21
-------------------
int i = 10;
System.out.println(i++ + ++i);// 22
-------------------
int i = 10;
System.out.println(++i + i++);// 22
-------------------
int a = 5;
System.out.println(a++>=a);// false
-------------------
int a = 5;
System.out.println(a>=a++);// true
1234567891011121314151617
2. 关系运算符
<,>,>=,<=,==,!= ,boolean
3. 逻辑运算符
&& 并且
boolean && boolean —> && 的两侧都是boolean类型的值 int a = 5;
int c = 6;
boolean b = a++ > c && a++ < c;
123 短路、见false则false int a = 5;
int c = 6;
boolean b = a++ > c && a++ < c;
System.out.println(b); // false
System.out.println(a); // 6
12345 || 或者
boolean || boolean —> || 的两侧都是boolean类型的值 int a = 5;
int c = 6;
boolean b = a++ > c || a++ < c;
123 短路、见true则true int a = 5;
int c = 6;
boolean b = a++ > c || a++ < c;
System.out.println(b); // false
System.out.println(a); // 7
12345 ! 取反
见false则变为true,见true则变为false
4. 值运算符
=,+=,-=,*=,/=,%=
5. 字符串连接运算符:
+
int age = 3;
System.out.println("大家好,我叫lss,今年"+age+"岁了");//大家好,我叫lss,今年3岁了
--------------------------------
System.out.println(10+20+""+30);//3030
1234
6. 三目运算
语法:boolean?值1:值2; 执行过程:
计算boolean表达式的值若为true,则整个表达式的结果取?后的值1若为false,则整个表达式的结果取?后的值2 int num = 5;
int flag = num>0?1:-1;
System.out.println(flag); //1
-------------------------
int num = 5;
int flag = num>10?1:-1;
System.out.println(flag); //-1
二、经典面试题(仔细思考)
1. 关于自增的简单笔试题
short s = 1;
s += 1;
s = s + 1;
//上述两行代码,是不是一个意思?
2. boolean b = (3*0.1 == 0.3); b的结果是什么?为什么?
false
// 舍入误差
三、分支结构:基于条件之执行的语句
1. if:1条路
if(boolean){
//语句块
}
2. if…else:2条路
if(boolean){
//语句块
} else {
//语句块
}
四、总结(理解)
任何复杂的业务逻辑都可以通过三种结构来实现:
1. 顺序结构
从上往下逐行执行,每句必走
2. 分支结构
有条件的执行某语句,并非每句必走
3. 循环结构
有条件的重复执行某语句