参考答案
Queue的add()和offer()方法的区别:
- Queue 中 add() 和 offer() 都是用来向队列添加一个元素;
- 在容量已满的情况下,add() 方法会抛出IllegalStateException异常,offer() 方法只会返回 false。
JDK1.8 源码中的解释:
- /**
- * Inserts the specified element into this queue if it is possible to do so
- * immediately without violating capacity restrictions, returning
- * {@code true} upon success and throwing an {@code IllegalStateException}
- * if no space is currently available.
- *
- * @param e the element to add
- * @return {@code true} (as specified by {@link Collection#add})
- * @throws IllegalStateException if the element cannot be added at this
- * time due to capacity restrictions
- * @throws ClassCastException if the class of the specified element
- * prevents it from being added to this queue
- * @throws NullPointerException if the specified element is null and
- * this queue does not permit null elements
- * @throws IllegalArgumentException if some property of this element
- * prevents it from being added to this queue
- */
- boolean add(E e);
- /**
- * Inserts the specified element into this queue if it is possible to do
- * so immediately without violating capacity restrictions.
- * When using a capacity-restricted queue, this method is generally
- * preferable to {@link #add}, which can fail to insert an element only
- * by throwing an exception.
- *
- * @param e the element to add
- * @return {@code true} if the element was added to this queue, else
- * {@code false}
- * @throws ClassCastException if the class of the specified element
- * prevents it from being added to this queue
- * @throws NullPointerException if the specified element is null and
- * this queue does not permit null elements
- * @throws IllegalArgumentException if some property of this element
- * prevents it from being added to this queue
- */
- boolean offer(E e);
以上,是Java面试题【Queue的add()和offer()方法有什么区别】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—