![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
还没秃的小菜鸡
头发阻挡了我对知识的吸收
展开
-
Java 队列面试题
常用的阻塞队列有哪些? ArrayBlockingQueue列长度固定且必须在初始化时指定,所以使用之前一定要慎重考虑好容量;如果消费速度跟不上入队速度,则会导致提供者线程一直阻塞,且越阻塞越多,非常危险;只使用了一个锁来控制入队出队,效率较低。 LinkedBlockingQueue可选的容量范围构造方法参数作为防止队列过度扩展的一种方法,如果未指定容量,则等于Integer.MAX_VALUE,除非插入节点会使队列超出容量,否则每次插入后会动态地创建链接节点双锁队列的变种实现,一把写锁,一把读锁(这点原创 2020-09-23 16:18:31 · 492 阅读 · 0 评论 -
Java集合面试题
HashMap相关面试题 JDK8中的HashMap与JDK7的HashMap有什么不一样? JDK8中新增了红黑树,JDK8是通过数组+链表+红黑树来实现的 JDK7中链表的插入是用的头插法,而JDK8中则改为了尾插法 JDK8中的因为使用了红黑树保证了插入和查询了效率,所以实际上JDK8中的Hash算法实现的复杂度降低了 JDK8中数组扩容的条件也发了变化,只会判断是否当前元素个数是否查过了阈值,而不再判断当前put进来的元素对应的数组下标位置是否有值。 JDK7中是先扩容再添加新元素,JDK8中是先原创 2020-09-23 15:15:09 · 210 阅读 · 0 评论