- 集合和数组的比较
数组初始化后长度不能改变,存储同一种类型的引用数据或者基本数据类型,查询方便效率高,内容可以重复,可以根据索引查找。
集合可以改变集合的长度,集合里可以存储不同类型的数据。 - 简述List、Set、Collection、Map的区别和联系。
Collection接口每次存储的是单一的数据,无序。可以根据foreach或者迭代器遍历。
Map接口是以键值对形式存储数据的,key值不能相同,如果相同value会被覆盖。
List,Set继承了Collection接口。
List存储的数据可以重复是有序的。
Se存储的数据不能重复是无序的。 - ArrayList和LinkedList的区别和联系。
ArrayList底层是通过数组实现的,可以扩展,查询数据效率高。可以通过索引查找数据,遍历可以通过 普通for循环,foreach,迭代器。
LinkedList底层是通过双向链表实现的,可以扩展,增删方便,查找效率不高。遍历可以用foreach,迭代器有新增的listiterator方法。 - HashSet采用了哈希表作为存储结构,请说明哈希表的特点。
哈希表具有查找和增删都效率高的特点,通过数组+链表或者红黑树实现。 - Vector和ArrayList的区别和联系。
Vector和ArrayList实现方法都相同,不过Vector线程安全,ArrayList线程不安全,效率比ArrayList低。 - 请你简述HashMap和Hashtable的区别?
HashMap和Hashtable实现方法都相同,不过Hashtable的线程安全,HashMap线程不安全,效率比HashMap低。 - 输入流和输出流的联系和区别,字符流和字节流的联系和区别。
字节流以字节为单位获取数据,可以成为万能流文件,图片,视频都能传输。
字符流以字符为单位获取数据,只能传输文字相关的数据。 - 列举常用的字节输入流和字节输出流并说明其特点,至少5对。
以程序为中心,往外发送的为输出流,接收的为输入流。 - 说明缓冲流的优点和原理
缓冲流在节点流的层次上包装一层流,提高读写的效率。 - 简述程序、进程和线程的联系和区别。
操作系统的执行文件,代码。进程是资源分配的最小单位,线程是cpu调度的最小单位。 - 创建线程的两种方式分别是什么?各有什么优缺点。
继承Thread 重写run()方法,实现Runnable接口重写run()方法,前者操作方便,但是已经继承了一个类,无法继承其他类。
后者还可以继承其他类,还可以实现接口。 - sleep、yield、join方法的区别?
sleep释放cpu资源但是不释放对象的锁进入阻塞状态。
yield从运行状态进入就绪状态,让出cpu资源。
join调用后进入阻塞状态等另一个线程结束后,才开始执行。
JAVA常见面试题
最新推荐文章于 2024-04-25 00:28:12 发布