JAVA常见面试题

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值