Queue系列

共有 8 个主题
## Queue是一种叫做队列的数据结构,队列是遵循着一定原则的入队出队操作的集合 #### 一般来说,入队是在队列尾添加元素,出队是在队列头删除元素,但是,也不一定,比如优先级队列的原则就稍微有些不同。java中提供的Queue的实现主要有PriorityQueue、ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue、LinkedTransferQueue、DelayQueue、ConcurrentLinkedQueue。 ![qrcode](https://gitee.com/alan-tang-tt/yuan/raw/master/%E6%AD%BB%E7%A3%95%20java%E9%9B%86%E5%90%88%E7%B3%BB%E5%88%97/resource/Queue.png) 关于Queue的问题主要有: 1. 什么是堆?什么是堆化? 2. 什么是优先级队列? 3. PriorityQueue是怎么实现的? 4. PriorityQueue是有序的吗? 5. PriorityQueue入队、出队的时间复杂度各是多少? 6. PriorityQueue是否需要扩容?扩容规则呢? 7. ArrayBlockingQueue的实现方式? 8. ArrayBlockingQueue是否需要扩容? 9. ArrayBlockingQueue怎么保证线程安全? 9. ArrayBlockingQueue有什么缺点? 10. LinkedBlockingQueue的实现方式? 11. LinkedBlockingQueue是有界的还是无界的队列? 12. LinkedBlockingQueue怎么保证线程安全? 13. LinkedBlockingQueue与ArrayBlockingQueue对比? 14. SynchronousQueue的实现方式? 15. SynchronousQueue真的是无缓冲的吗? 16. SynchronousQueue怎么保证线程安全? 17. SynchronousQueue的公平模式和非公平模式有什么区别? 18. SynchronousQueue在高并发情景下会有什么问题? 19. PriorityBlockingQueue的实现方式? 20. PriorityBlockingQueue是否需要扩容? 21. PriorityBlockingQueue怎么保证线程安全? 22. PriorityBlockingQueue为什么不需要notFull条件? 23. 什么是双重队列? 24. LinkedTransferQueue是怎么实现阻塞队列的? 25. LinkedTransferQueue是怎么控制并发安全的? 26. LinkedTransferQueue与SynchronousQueue有什么异同? 27. ConcurrentLinkedQueue是阻塞队列吗? 28. ConcurrentLinkedQueue如何保证并发安全? 29. ConcurrentLinkedQueue能用于线程池吗? 30. DelayQueue是阻塞队列吗? 31. DelayQueue的实现方式? 32. DelayQueue主要用于什么场景? > 关于Queue的问题大概就这么多,你都能回答上来吗?