1、算术计算符
1.1、二元运算符:+、-、*、/、%
1.2、一元运算符:++、–
1.2.1、++和–的区别与联系
1.2.1.1、只能针对整数
1.2.1.2、只能适用于变量,不能适用于常量
1.2.1.3、位置在前,先自增/自减,再赋值;
位置在后,先赋值,再自增/自减
1.2.1.4、当+号任意一端出现字符串,此时+号就是连接符
1.2.1.5、关于取余运算的正负,与被除数的正负相关
2、扫描器类:java.util.Scanner
Scanner sc = new Scanner();
int a = sc.nextInt();
2.1、常用方法
2.1.1、next() 扫描字符串,当输入到空格结束
2.1.2、nextInt() 扫描整数
2.1.3、nextDouble() 扫描整数
2.1.4、nextIine() 扫描字符串,当输入到回车结束
3、为什么String、System不需要导包?
Java语言根据所在类的不同包进行区分,String、System属于java.lang包,JVM可直接识别,而Scanner属于java.util包,所以需要导包
4、二元运算符的运算规则
4.1、整数运算
如果两个操作数有一个为long型,结果也为long型;
如果没有long型,结果为int型
4.2、浮点数运算
如果两个操作数有一个为double,结果也为double;
只有两个操作数都是float型,结果才为float型
5、拓展赋值运算符
5.1、在赋值或运算时,要求数据类型相同,否则需要类型转换
5.2、转换方式
5.2.1、隐性转换,boolean类型除外
5.2.2、强制转换: 数据类型 变量名 = (数据类型) 变量名
5.3、范围大小
byte < short < char < int < long < float < double
6、控制语句
6.1、控制语句分为:顺序、选择和循环
6.2、选择语句又分为:if语句和switch语句
6.2.1、if语句
//if语句 - 单分支
if(布尔表达式){
//语句块
}
//if语句 - 双分支
if(布尔表达式){
//语句块1
} else {
//语句块2
}
//执行规则:判断布尔表达式中的值,根据值执行不同的语句块
//true:执行语句块1
//false:执行语句块2
//if语句 - 多分支
if(布尔表达式1){
//语句块1
} else if(布尔表达式2){
//语句块2
} else {
//语句块n
}
//执行规则:按照从上到下的顺序依次执行
//如果第一个条件没有满足,则判断第二个条件,以此类推;如果都不满足,则执行else语句
//针对单if语句进行优化,如果存在多个单分支语句,即便前一个满足,后续的if语句还需要进行判断执行
//如果第n个表达式成立,后续的if else语句不再执行
//if多分支语句可以和switch语句互换,编写javase项目时,尤其是菜单栏选项,使用switch语句,不要使用if多分支语句
6.2.1、switch语句
switch(表达式){
case 值1:
语句序列1;
[break];
case 值2:
语句序列2;
[break];
...
default:
默认语句;
}
//执行规则:switch语句会根据表达式的值,从相匹配的case标签开始执行,一直执行到break语句,或者switch默认语句
//如果表达式的值与任意case值都不匹配,则进入执行default语句
//如果已经匹配了某个case,但是此case语句没有编写break单词,会继续执行下一个case语句,知道遇到break或执行完毕
//switch的细节
//switch括号中的表达式不允许是条件表达式,多重if else语句正好相反
//关于case后面的值类型,根据表达式的结果类型而定
//表达式的类型:byte、short、int、long、char,jdk1.7之后支持String类型
//break用来结束此语句
//多重if else语句是区间判断,switch表达式的值是等值判断
//default语句,相当于多重if else语句的else部分
7、Math类
7.1、Math类的random()
7.1.1、[a, b] = (int)(Math.random() * (b - a + 1) + a)
7.1.2、random()计算出来的是0.0 ~ 1.0之间的小数,包括0.0,不包括1.0
7.1.3、使用类型的强制转换,可以将小数转为整数
(int) (Math.random() * 100) 结果是0~99
(int) (Math.random() * 101) 结果是0~100
口诀就是:包左不包右,包头不包尾
8、printf()
使用double类型接受随机产生的小数,小数点后面有多位数值
printf(“格式要求”, 变量名称);
格式要求:“%.保留几位f”
9、三元运算符
9.1、格式: 条件表达式 ? 表达式1 : 表达式2;
9.1.1、条件表达式结果为boolean值,true执行表达式1,false执行表达式2
9.1.2、三元运算符可以嵌套使用,执行顺序按优先级来
9.2、if双分支结构语句,可以和三元运算符进行互换
10、关系运算符
10.1、关系运算符:==、 !=、 >、 >=、 <、 <=
10.2、赋值运算符"=“和”=="(判断两个操作数是否相等)
10.2.1、"="优先级最低,右边的值赋值给左边
10.2.2、“==” 运算结果是boolean值;
既可以针对基本数据类型进行比较(比较的具体的值是否相等),
也可以针对引用数据类型进行比较(比较的是引用数据类型的地址值)。
引用数据类型的地址值相等,内容肯定相等,反之内容相等,但是地址值不一定相等。
10.3、“==”、“!=” 是所有的数据类型都可以使用
10.4、 >、 >=、 <、 <=仅针对数值基本数据类型有用(byte、short、int、long、float、double、char)
10.5、字符型可以和数值类型进行比较,char类型优先变成数值类型;
String字符串类型和基本数据类型,不能进行比较;
boolean类型和其他的基本数据类型不能进行比较
10.6、Java中不等号为:!=,而数据库中<>、!=都可以使用
11、逻辑运算符
11.1、&、|、&&、||、^、!
11.2、运算规则
11.2.1、&和&&运算规则相同:如果符号两边一边为false,整体结果返回false;两边都是true,结果才为true
11.2.2、|和||运算规则相同:如果符号两边一边为true,整体结果返回true;两边都是false,结果才为false
11.2.3、^的运算规则:如果符号两边都是相同的布尔值,返回的结果是false;反之返回的结果是true
11.2.4、!的运算规则:如果符号的右边是false,结果为true,右边是true,结果为false;
只针对布尔变量,对于常量无效
11.3、混合运算的时候,先计算关系表达式,再计算逻辑表达式
11.4、&和&&的区别
相同点:都属于逻辑运算符,运算规则都相同;
符号两边都必须是布尔值;
不同点:效率问题。&&效率更高,如果左边能确定最终的表达式的值,就不再计算右边
从属问题。&&和||只能是逻辑运算符,&和|既可以是逻辑运算符,也可以是按位运算符
12、"=="和equals()区别
相同点:二者存在的意义就是为了比较,且运算结果都是boolean值
不同点:二者本质不同,"=="属于关系运算符,equals()属于方法
比较的内容不同:
“==” 既可以比较基本数据类型,也可以比较引用数据类型。
基本数据类型比较的是两个值是否相同,引用数据类型比较的是在JVM内存中的地址值是否相同;
equals()只能比较引用数据类型,比较的是两个对象的地址值是否相同
如果重写equals(),就可以比较两个对象的内容是否相同
13、各进制之间的关系
十进制D | 二进制B | 八进制Q | 十六进制H |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
14、位运算符
14.1、位运算符指的是进行二进制位的运算
14.2、~、&、|、^ 、<<(左移一位相当于乘2)、>>(右移一位相当于除2取商)
14.3、&和|既是逻辑运算符,也是位运算符
如果两个操作数都是boolean类型,就作为逻辑运算符,如果都是整数类型,就作为位运算符
14.4、取反~:把十进制数字转成二进制数字之后,再进行取反操作,由原来的0变成1,1变成0
逻辑运算符取反!,右边是boolean值,按位运算符取反:~,右边是二进制数值
14.5、按位与&:与逻辑运算符相同,1为true,0为false
14.6、按位或|:与逻辑运算符相同,只要有一个为true,结果就是true
14.7、按位异或^:只要有相同的就返回false,不同的返回true
14.8、位移运算符:左移,数值越来越大;右移,数值越来越小
14.9、特点
位运算符是对操作数以二进制为单位进行操作和运算,操作数和结果都是整型数
如果操作对象是char、byte、short,位移动作发生前其值也会自动晋升为int,运算结果也是int