一 流程控制
- if分支语句
使用if...else语句时,一定要优先处理包含范围更小的情况。
- switch分支语句
switch语句后面的控制表达式的数据类型只能使byte,short,char,int四个整数类型和枚举类型,不能是boolean类型。Java7新增允许switch语句中的控制表达式为java.lang.String类型。
public class SwitchStringDemo { public static void main(String[] args) { // TODO Auto-generated method stub String season = "Winter"; switch(season) { case "Spring": System.out.println("Spring is coming"); break; case "Summer": System.out.println("Summer is coming"); break; case "Autumn": System.out.println("Autumn is coming"); break; case "Winter": System.out.println("Winter is coming"); break; default: System.out.println("so wired"); } } }
- break
break可以结束所在循环,也可以直接结束外层循环,此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。通常紧跟break之后的标签,必须在break所在循环的外层循环之前定义才有意义。
- continue
continue也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环。
二 数组类型
- What
一旦数组的初始化完成, 数组在内存中所占的空间将被固定下来,因此数据的长度将不可改变。
数组也是一种数据类型,它本身是一种引用类型,例如int是一个基本类型,但int[]就是一种引用类型了。
- 定义
type[] arrayName; (推荐)
type arrayName[];
eg.
int[] intArray;
定义一个数组时,仅仅定义了一个引用变量,这个引用变量还没有指向任何有效的内存,因此定义数组时不能指定数组长度。而且由于定义数组只是定义了一个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有初始化后才能用。
- 初始化
数组初始化就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。
静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。
arrayName = new type[] {e1, e2, e3 ...} or arrayName = {e1, e2, e3 ...}
动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。
arrayName = new type[length];
- foreach循环
当使用foreach来迭代访问数组元素时,循环变量相当于一个临时变量,系统会把数组元素一次赋给这个临时变量,而这个临时变量并不是数组元素,它只是保存了数组元素的值。因此如果希望改变数组元素的值,就不能使用foreach循环。
- 操作数组的工具类(java.utl.Arrays)
binarySearch
copyOf
copyOfRange
equals
fill
sort
toString