Java Collection问题汇总

  1. 对比Vector、ArrayList、LinkedList有何区别?
  2. 对比HashTable、HashMap、TreeMap有何不同?
  3. 如何保证集合是线程安全的?ConcurrentHashMap如何实现高效地线程安全?

怎样理解有界队列和无界队列?

有界队列: 有固定大小的队列。比如,设置了固定大小的 LinkedBlockingQueue,又或者大小为0,只是在生产者和消费者间做中转用的 SynchronousQueue

无界队列: 没有固定大小的队列。这些队列的特点是可以直接入列,直到溢出。没有设置范围即取默认最大值( Integer.MAX_VALUE),当然现实几乎不会有这么大的容量(超过 Integer.MAX_VALUE),所以从使用者的体验上看,就相当于“无界”。比如没有设置固定大小的 LinkedBlockQueue

总结:除了 SynchronousQueue队列是有界的,其他队列,是否有界,取决于创建队列时有没有指定容量,设置固定大小的队列为有界队列,没有设置规定大小的队列为无界队列(实现上体验为队列大小为 Integer.MAX_VALUE)。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 ligongzhao
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信