- 流程控制结构
- 顺序结构
- 分支结构
- if分支
- switch分支
- 循环结构
- while
- do-while
- for
- foreach
- 嵌套循环
- 控制语句
- break
- continue
- 数组类型
数组类型是一种引用类型,数组一旦初始化完成,就确定了其在内存占用的空间,长度不可变。- 数组定义
声明一个引用变量,未指明内存空间,不能指定长度。 - 数组初始化
初始化即为数组元素分配内存空间,并赋初值(系统自动初始化后程序员再初始化)。- 静态初始化
程序员指定数组初始值,系统决定数组长度。
int[] arr = {1, 2, 3, 4, 5};
- 动态初始化
程序员指定数组长度。
int[] arr = new int[10];
不能同时指定长度和初始值!数组元素为引用类型时值默认为null。
- 静态初始化
- 访问数组
- 数组有length属性表示长度
for(int i = 0;i < arr.length;++i)
foreach循环自动遍历数组和集合,只能访问不能赋值
foreach(int tmp: arr) { System.out.println(tmp); }
- 数组有length属性表示长度
- 数组定义
- 深入数组
- 内存中的数组
创建一个局部变量,则它被存储在所在方法的内存栈(stack)中;创建一个对象后,则该对象被存储在堆内存(heap)中以便被反复利用。方法结束而堆内存中的对象不会被销毁,所以还可以被引用。如果没有任何引用指向该对象,比如把数组变量赋值为null,则GC会回收它。 - 二维数组
int[][] attr = new int[4][];
声明一个数组,第一个[4]表示这个数组存了四个引用类型的数组,第二个[]表示这四个数组存int类型的值。
- 内存中的数组
- Arrays类
Java增强的工具类,位于java.util包里。Arrays类里提供了直接调用来操作数组的static方法,如下:- 二分查找返回索引(数组需升序排列)
int tmp = Arrays.binarySearch(arr, key);
- sort排序
Arrays.sort(arr);
并行排序
Arrays.parallelSort(arr);
- 数组转换字符串
String str = Arrays.toString(arr);
- 批量赋值
Arrays.fill(arr, value);
- 判断数组相同
boolean res = Arrays.equals(arr, ar);
- 复制数组(length决定ar的长度)
int[] ar = Arrays.copyOf(arr, length);
- System类也提供了一个复制数组的静态方法
static void arraycopy(src, srcletf, target, tarleft, length);
- 二分查找返回索引(数组需升序排列)
学到这里可以写写五子棋、扫雷俄罗斯方块、连连看等小游戏了