0%

Java 知识点

前言:Java一些知识点记录

Java危险的递归调用

public static int test(int n) {
    if (n == 1)
        return 1; // 结束循环条件
    return test(n - 1) + n; // 调用自己直到满足条件跳出循环
}

二分排序算法

public static void quickSort(int arr[], int start, int end) {
    if (start >= end)
        return;
    int k = arr[start], left = start, right = end;
    while (left < right) {
        while (left < right && k <= arr[right])
            right--;
        arr[left] = arr[right];
        while (left < right && k >= arr[left])
            left++;
        arr[right] = arr[left];
    }
    arr[left] = k;

    quickSort(arr, start, right - 1);
    quickSort(arr, right + 1, end);
}

Java 异常篇

默认情况下异常会交给 JVM 处理,JVM 发现任何异常都会立刻终止程序

int[] arr = new int[5]; // 定义数字元素为5个 0,1,2,3,4(数组下标从0开始!)
    arr[5] = 1; // 访问它的第五下标 这时,我们需要处理异常
    System.out.println(arr[5]); // 超出范围 数组越界

此时JVM发现了异常停止了程序,并在控制台打印 栈 最终信息

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
    at Main.main(Main.java:4)

处理异常使用try和catch
处理异常后的代码
当异常被捕获以后,就由我们自己处理(不交给JVM),因此程序不会终止执行
int[] arr = new int[5];
try { // 在try里运行的异常代码
arr[5] = 1; // 捕获异常并造catch块得到异常类型对象
} catch (Exception e) { // 需要捕获的异常类型
System.out.println(“程序运行出现异常”);// 出现异常执行的代码
}
// 后面的代码正常执行
System.out.println(“lbwnb”);

追踪栈异常信息

e.printStackTrace();

运行异常继承于

RuntimeException

所有继承于 Throwable 均可进行捕获异常

Throwable