目录
分支语句
-
if-else条件判断结构
结构:
if (条件表达式1) {
语句块1;
} else if (条件表达式2) {
语句块2;
}
...
}else if (条件表达式n) {
语句块n;
} else {
语句块n+1;
}
-
switch-case选择结构
结构:
switch(表达式){
case 常量值1:
语句块1;
//break;
case 常量值2:
语句块2;
//break;
// ...
[default:
语句块n+1;
break;
]
}
使用注意点:
switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);
case子句中的值必须是常量,不能是变量名或不确定的表达式值或范围;
同一个switch语句,所有case子句中的常量值互不相同;
break语句用来在执行完一个case分支后使程序跳出switch语句块;
如果没有break,程序会顺序执行到switch结尾;
default子句是可选的。同时,位置也是灵活的。当没有匹配的case时,执行default语句。
循环语句
-
for 循环
语句结构:
for (①初始化部分; ②循环条件部分; ④迭代部分){
③循环体部分;
}
-
while 循环
语句结构:
①初始化部分
while(②循环条件部分){
③循环体部分;
④迭代部分;
}
-
do-while 循环
语句结构:
①初始化部分;
do{
③循环体部分
④迭代部分
}while(②循环条件部分);注意点:
do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的
-
关键字break和continue的使用
适用范围 | 在循环结构中使用的作用 | 相同点 | |
break | switch-case、循环结构 | 一旦执行,就结束(或跳出)当前循环结构 | 此关键字的后面,不能声明语句 |
continue | 循环结构 | 一旦执行,就结束(或跳出)当次循环结构 | 此关键字的后面,不能声明语句 |
数组
-
初始化方式
- 静态初始化
例:int[] arr = new int[]{1,2,3,4,5};或 int[] arr = {1,2,3,4,5};
- 动态初始化
例:int[] arr = new int[5];
-
数组内存分析
说明:
创建数组对象会在内存中开辟一整块
连续
的空间
。占据的空间的大小,取决于数组的长度和数组中元素的类型。数组中的元素在内存中是依次紧密排列的,有序的。
数组,一旦初始化完成,其长度就是确定的。数组的
长度一旦确定,就不能修改
。
例子:
public static void main(String[] args) {
int[] arr = new int[3];
System.out.println(arr);
}
-
Arrays数组工具类
java.util.Arrays类即为java提供操作数组的工具类,包含了用来操作数组的各种方法。
比如:
数组转字符串:
- static String toString(int[] a)
- static String toString(Object[] a)
数组排序
- static void sort(int[] a):将a数组按照从小到大进行排序
- static void sort(int[] a, int fromIndex, int toIndex) :将a数组的[fromIndex, toIndex)部分按照升序排列
- static void sort(Object[] a) :根据元素的自然顺序对指定对象数组按升序进行排序。
- static <T> void sort(T[] a, Comparator<? super T> c) :根据指定比较器产生的顺序对指定对象数组进行排序。
数组元素的二分查找
- static int binarySearch(int[] a, int key) 、static int binarySearch(Object[] a, Object key)
数组的复制
static int[] copyOf(int[] original, int newLength) :根据original原数组复制一个长度为newLength的新数组,并返回新数组
static <T> T[] copyOf(T[] original,int newLength):根据original原数组复制一个长度为newLength的新数组,并返回新数组
static int[] copyOfRange(int[] original, int from, int to) :复制original原数组的[from,to)构成新数组,并返回新数组
static <T> T[] copyOfRange(T[] original,int from,int to):复制original原数组的[from,to)构成新数组,并返回新数组
比较两个数组是否相等
static boolean equals(int[] a, int[] a2) :比较两个数组的长度、元素是否完全相同
static boolean equals(Object[] a,Object[] a2):比较两个数组的长度、元素是否完全相同
填充数组
static void fill(int[] a, int val) :用val值填充整个a数组
static void fill(Object[] a,Object val):用val对象填充整个a数组
static void fill(int[] a, int fromIndex, int toIndex, int val):将a数组[fromIndex,toIndex)部分填充为val值
static void fill(Object[] a, int fromIndex, int toIndex, Object val) :将a数组[fromIndex,toIndex)部分填充为val对象
-
数组常见的异常
- ArrayIndexOutOfBoundsException:数组角标越界
- NullPointerException:空指针异常