Java面试题03

BIO、NIO、AIO 有什么区别?
  • BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
  • NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
  • AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。
Files的常用方法都有哪些?
  • Files.exists():检测文件路径是否存在。
  • Files.createFile():创建文件。
  • Files.createDirectory():创建文件夹。
  • Files.delete():删除一个文件或目录。
  • Files.copy():复制文件。
  • Files.move():移动文件。
  • Files.size():查看文件个数。
  • Files.read():读取文件。
  • Files.write():写入文件。
Java容器

img

collection和collections区别是collection是一个集合的接口,collections是一个集合类的实现类。

List,Set,Map区别

img

hashmap对于插入,删除和定位元素,进行遍历选择treemap

hashmap实现原理:

​ 是基于哈希表的map接口的非同步实现,可以允许使用null值和null键,是数组和链表的结合体.首先根据key的hashcode重新计算hash值,根绝hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放入链尾.如果数组中该位置没有元素,就直接将该元素放到数组的该位置上。

hashset实现原理:

​ 底层由hashmap实现,值存在于hashmap的key上,HashMap的value统一为PRESENT

ArrayList和LinkedList区别:

​ arrayList底层数据结构是数组,支持随机访问,LinkedList底层数据结构是双向循环链表,不支持随机访问,使用下标访问arrayList更快.

List转为数组:调用arrayList的toArray方法 数组转为List:调用arrays的asList方法

arratList和vector的区别:不同步和同步

array和arrayList的区别:array可以容纳基本类型和对象,arrayList只能容纳对象。array不可以改变,arrayList可以改变大小

Queue中poll()和ramove()是一个获取元素失败时返回空,另一个抛出异常

线程安全的有:vector,stack,hashtable,enumeration

迭代器是什么:是一种设计模式,使用next()获取下一个元素,使用remove()检查是否还有元素

Iterator可以用来遍历set和List集合,ListIterator只能遍历List,ListIterator实现了Iterator接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值