一、转义字符
符号 | 意义 |
---|---|
\n | 转行 |
\' | 单引号 |
\\ | 一个斜杠 |
\t | 水平制表 |
\" | 双引号 |
二、常量
常量:数字字面量,字面量常量,使用final关键字修饰的变量。
理解:在程序执行过程中不可变的量。
数字字面量:程序中出现的数字,整数数字默认int型,小数默认double型。
字面量常量:使用双引号括起来的内容。
使用final关键字修饰的变量:final int I = 100; I 为常量,命名规范:所有字母大写
扩展:字面值常量和final修饰的变量存储在内存的常量池中,常量池中的常量在项目结束时才会被回收。
三、Java的执行语句
顺序语句:方法里的代码从上往下执行。
分支语句:判断某个条件,执行不同的功能。if分支,switch分支。
循环语句:只要条件成立,就重复性的做某个功能,for循环,while循环,do-while循环。
特殊的流程控制语句,break(结束循环),continue(跳过本次循环),return,lable
lable
a:for(){ for(){ break a;//结束循环a; } }
四、简单的if分支
语法结构:
if(表达式){ ...代码块... }理解:表达式的结果必须是boolean类型
小结:if(){} 表示可进入也可以不进去。
五、复杂的if分支
if分支可以判断复杂的条件,只要结果是boolean就行。
if分支可以判断区间。
六、if...else....
语法结构:
if(表达式){ ...代码块... }else{ ...else代码块... }
理解:表达式里的结果必须是boolean类型。
if...else...在二选一的情况下使用。
七、多种if分支
语法结构:
if(表达式1){ ...代码块1... }else if(表达式2){ ..代码块2... }else if(表达式n){ ..代码块n... }else{ ...else代码块... }
理解:表达式的结果必须是boolean类型,从上往下判断表达式,哪个表达式先为true,就执行对应的代码块,如果都不为true,就执行else代码块,else代码块根据需求,可写可不写。
小结:多重if分支在多选一的情况下使用。
八、嵌套if分支
if可以无限层嵌套
if最好不要超过三层嵌套,因为可读性会下降。
九、switch的使用
语法结构:
switch(表达式){ case 值1: ...代码块1... break; case 值2: ...代码块2... break; case 值n: ...代码块n... break; default: ...default代码块... break; }
理解:表达式的结果分别跟值1、值2、值n比较,哪个相同,就执行对应的代码块,break表示跳出整个分支语句,如果表达式跟值1、值2、值n都不相同,则执行default代码块,根据需求default代码块可写可不写。
小结:switch主要是判断单个值是否相同。
十、switch的深入
case的值不可以相同,default可以省略,break可以省略,default的位置不一定要在最后,表达式值的类型可以是:byte,short,int,char,枚举(JDK1.5),String(JDK1.7)。
底层:switch只能识别int
底层实现:byte和short自动向上转型成int,char获取字符得Unicode码,枚举使用枚举类得对象编号,这个编号就是int类型,String获取字符串得hash码,这个hash码就是int类型。
为什么switch底层只能识别int?
因为switch底层有个指令,这个指令只能接受int类型的数据。
十一、if vs switch
表达式的区别:
if只能是boolean类型
switch:byte、short、int、char、枚举(JDK1.5)、字符串(1.7)
十二、for循环
使用循环的好处:解决代码的冗余。
语法结构:
for(表达式1;表达式2;表达式3){ ...代码块/循环体... }
理解:表达式1 -- 初始化变量,表达式2 -- 判断条件,表达式3 -- 更新变量
执行步骤:1.初始化变量,2.判断条件,结果必须是boolean类型。