Java 面试基础知识(四)

1.arraylist与vector的区别

1)两者都实现了list接口,都是通过数组实现的;vector是线程安全的,而arraylist非线程安全。

2)当list增加元素时,如果它认为不够的时候会进行扩容,vector也会,默认情况下是增加原来的一倍的数组长度,arraylist则增加原来的50%。

2.arraylist和linklist的区别以及使用

1)arraylist是数组实现的,可以认为是一个大小可变的动态数组。linklist是通过双向链表实现的。

2)linklist与arraylist相比增删速度较快,查找和修改值较慢。

3)linklist适合中间插入或者删除较多的时候使用,arraylist时候查询较多的时候使用。

2.error与exception的区别

error与exception都是继承与throwable类;error一般指与虚拟机有关的问题,比如系统崩溃、虚拟机错误、内存不足和方法调用栈溢出等,这种情况是程序无法处理的。exception表示程序可以处理的异常,可以获取并且可能恢复的。遇到这种情况应当处理异常,让程序恢复运行。

3.多线程实现的方法

1)继承thread类。

2)实现runable接口。

3)使用executorService、callable、future实现有返回结果的多线程。

4.线程的状态转化。


Java 面试基础知识(四)_第1张图片

你可能感兴趣的:(Java 面试基础知识(四))