在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。
Throwable: 有两个重要的子类:Exception(异常) 和 Error(错 误) ,二者都是 Java 异常处理的重要子类,各自都包含大量子类。
Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大 多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟 机)出现的问题。
**Exception(异常)*是程序本身可以处理的异常。
注:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。
在以下 4 种特殊情况下,finally 块不会被执行
1.在 finally 语句块中发生了异常。
2.在前面的代码中用了 System.exit()退出程序。
3.程序所在的线程死亡。
4.关闭 CPU。
5.获取用键盘输入常用的的两种方法
方法 1:通过 Scanner
Scanner input = new Scanner(System.in); String s = input.nextLine(); input.close();
方法 2:通过 BufferedReader
BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String s = input.readLine();
List集合实现类ArrayList底层采用数组实现
数组的两种扩容方式
Object [] objects = {1, 2, 3, 4 ,5, 6};
Object[] newObjects = Arrays.copyOf(objects, 3);
System.out.println(Arrays.toString(newObjects));
int[] fun = {0, 1, 2, 3, 4, 5, 6};
System.arraycopy(fun, 3, fun, 0, 4);
System.out.println(Arrays.toString(fun));
ArrayList数组默认初始化大小放在add方法内,无参构造方法默认为一个空数组,有参构造方法可以指定其数组长度
//初始化时默认为空数组
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
//elementData:ArrayList存放数据的数组
transient Object[] elementData;
//无参构造方法默认为一个空数组
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
//指定长度的有参构造
public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new IllegalArgumentException("Illegal Capacity: " + initialCapacity);
}
}



