java interview
1.0.0
维多利亚·德米多娃 (Victoria Demidova) 问答整理
由 cmmttd 提供的 Telegram 机器人
到内容
到内容
final
关键字是什么意思?main()
函数了解多少?abstract
修饰符在哪里使用以及用于什么目的?final
修饰符声明接口方法?private
类变量吗?如果是,那么如何?static
修饰符适用于哪些 Java 构造?throws
部分中元素的顺序?assert
语句有什么用?finalize()
?为什么需要它?finalize()
方法需要相当长的时间才能完成,或者在执行过程中抛出异常,垃圾收集器会发生什么情况?final
、 finally
和finalize()
之间有什么区别?ClassCastException
?String
类有什么特点?String
一个不可变且终结的类?char[]
比String
更适合存储密码?HashMap
中流行的键?String
类中的intern()
方法有什么作用?switch
结构中使用字符串?String
、 StringBuffer
、 StringBuilder
之间的主要区别是什么?Object
类?它有哪些方法呢?clone()
方法是在Object
类中声明的,而不是在Cloneable
接口中声明的?equals()
?它与==
操作有何不同?equals()
生成等价关系。这种态度有什么特点呢?equals()
,重写的方法必须满足什么条件?Object.equals()
方法的规则。hashCode()
和equals()
之间有什么关系?equals()
被重写,是否还有其他方法应该被重写?equals()
而不重写hashCode()
会发生什么?可能会出现什么问题?Object
类中的hashCode()
和equals()
方法是如何实现的?hashCode()
方法的用途是什么?Object.hashCode()
方法的规则。hashCode()
时应使用哪些字段有什么建议吗?hashCode()
吗?Point{int x, y;}
实现equals(Object that) {(return this.x == that.x && this.y == that.y)}
方法,但使哈希码采用以下形式int hashCode() {return x;}
,那么这些点是否会被正确地放置并从HashSet
中检索?(ref0 != ref1)
可以有ref0.equals(ref1) == true
吗?(ref0 == ref1)
是否可以有ref0.equals(ref1) == false
?equals(Object that) {return this.hashCode() == that.hashCode()}
方法?equals()
需要检查参数equals(Object that)
是否与对象本身类型相同。 this.getClass() == that.getClass()
和that instanceof MyClass
之间有什么区别?MyClass
类的equals()
方法: class MyClass {public boolean equals(MyClass that) {return this == that;}}
?Point{int x, y;}
。为什么哈希码31 * x + y
优于x + y
?throws
关键字是什么意思?Error
?OutOfMemoryError
了解多少?catch
)?catch
块可以同时捕获多个异常吗?finally
块总是被执行吗?finally
块不会被执行的情况?IOException
和FileNotFoundException
catch
块应该按什么顺序运行?将执行多少个catch
块?到内容
List
、 Set
、 Map
、 SortedSet
、 SortedMap
、 Collection
、 Iterable
、 Iterator
、 NavigableSet
、 NavigableMap
。Map
不是Collection
而List
和Set
是Collection
?java.util.Collection
和java.util.Collections
类之间有什么区别?Enumeration
和Iterator
有什么区别。Iterable
和Iterator
有何关系?Iterable
、 Iterator
和“for-each”如何相互关联?Iterator
和ListIterator
。Iterator.next()
的情况下调用Iterator.hasNext()
时会发生什么?Iterator.next()
后调用Iterator.hasNext()
),将跳过多少个元素?iterator.remove()
集合将如何表现?collection.remove()
,已实例化的collection
迭代器将如何表现?ConcurrentModificationException
?ArrayList
和Vector
有什么区别?Vector
为什么还要添加ArrayList
?ArrayList
和LinkedList
有什么区别?在什么情况下最好使用第一个,什么情况下使用第二个?ArrayList
和LinkedList
哪个更快?LinkedList
中的元素, contains()
方法的最差运行时间是多少?ArrayList
中的元素, contains()
方法的最差运行时间是多少?LinkedList
上add()
方法的最差运行时间是多少?ArrayList
上的add()
方法的最差运行时间是多少?ArrayList
中删除元素?在这种情况下, ArrayList
的大小如何变化?ArrayList
实现的列表中间删除多个相邻元素。ArrayList.add()
时需要多少额外内存?LinkedList.add()
时会分配多少额外内存?LinkedList
中存储一个byte
原语所需的内存量?ArrayList
中存储一个byte
基元所需的内存量?ArrayList
或LinkedList
向中间添加元素( list.add(list.size()/2, newElement)
)的操作是否较慢?ArrayList
类的实现具有以下字段: Object[] elementData
、 int size
。如果您始终可以获取elementData.length
,请解释为什么您应该单独存储size
?Queue
和Deque
接口。Queue
扩展Deque
,还是Deque
扩展Queue
?LinkedList
同时实现List
和Deque
?LinkedList
是单链表、双链表还是四链表?get(index)
情况下以相反顺序迭代LinkedList
元素?PriorityQueue
允许您做什么?Stack
被认为是“过时的”。建议用什么来代替?为什么?Hashtable
为什么还需要HashMap
?HashMap
和IdentityHashMap
有什么区别? IdentityHashMap
的用途是什么?HashMap
和WeakHashMap
有什么区别? WeakHashMap
的用途是什么?WeakHashMap
使用 WeakReferences。为什么不在 SoftReferences 上创建SoftHashMap
?WeakHashMap
使用 WeakReferences。为什么不在 PhantomReferences 上创建PhantomHashMap
?LinkedHashMap
- 什么是来自LinkedList
和什么是来自HashMap
?toString()
按顺序显示所有元素之外, SortedMap
是如何“排序”的?HashMap
是如何工作的?HashMap
是如何实现的?您认为为什么选择这个特定的实现?每种方法的优点和缺点是什么?hashCode()
键将两个元素存储到 HashMap 中,但equals() == false
时, HashMap
是如何工作的?HashMap
中的初始桶数是多少?HashMap
中的元素进行操作的时间复杂度估计是多少? HashMap
是否保证指定的元素获取复杂度?hashCode()
HashMap
是否有可能退化为列表?HashMap
中的元素在什么情况下会丢失?byte[]
不能用作HashMap
中的键?HashMap
中equals()
和hashCode()
的作用是什么?hashCode()
最大数量是多少?HashMap
中的键, get(key) 方法的最差运行时间是多少?HashMap
中的键, get(key) 方法的最差运行时间是多少?HashMap
中的键不需要实现Comparable
接口,双向链表总能转换为红黑树?HashMap.get(key)
时会发生多少次转换?HashMap
添加新元素时,会创建多少个新对象?HashMap
中的桶数如何以及何时增加?HashMap(int initialCapacity, float loadFactor)
构造函数中参数的含义。hashCode()
HashMap
会工作吗?Map
所有键?Map
值?Map
中的所有键值对?TreeSet
和HashSet
有什么区别?TreeSet
添加元素会发生什么?LinkedHashSet
与HashSet
有何不同?Enum
有一个特殊的类java.util.EnumSet
。为了什么?为什么作者对HashSet
或TreeSet
不满意?ConcurrentModificationException
。UnsupportedOperationException
的示例。Collection
方法( addAll(...)
、 removeAll(...)
、 retainAll(...)
)实现两个集合的对称差异。collection
的元素复制到数组中?List
的一次调用获取包含除第一个和最后 3 个元素之外的所有元素的List
?HashSet
转换为ArrayList
?ArrayList
转换为HashSet
?HashMap
键创建HashSet
。HashSet<Map.Entry<K, V>>
创建HashMap
。到内容
System.out::println
。Function<T,R>
、 DoubleFunction<R>
、 IntFunction<R>
和LongFunction<R>
的用途是什么?UnaryOperator<T>
、 DoubleUnaryOperator
、 IntUnaryOperator
和LongUnaryOperator
的用途是什么?BinaryOperator<T>
、 DoubleBinaryOperator
、 IntBinaryOperator
和LongBinaryOperator
的用途是什么?Predicate<T>
、 DoublePredicate
、 IntPredicate
和LongPredicate
函数接口的用途是什么?Consumer<T>
、 DoubleConsumer
、 IntConsumer
和LongConsumer
的用途是什么?Supplier<T>
、 BooleanSupplier
、 DoubleSupplier
、 IntSupplier
和LongSupplier
函数接口的用途是什么?BiConsumer<T,U>
函数接口的用途是什么?BiFunction<T,U,R>
?BiPredicate<T,U>
函数接口的用途是什么?_To_Function
这样的函数式接口做什么?ToDoubleBiFunction<T,U>
、 ToIntBiFunction<T,U>
和ToLongBiFunction<T,U>
?ToDoubleFunction<T>
、 ToIntFunction<T>
和ToLongFunction<T>
的用途是什么?ObjDoubleConsumer<T>
、 ObjIntConsumer<T>
和ObjLongConsumer<T>
的用途是什么?StringJoiner
?default
接口方法有哪些?default
方法?static
接口方法?static
接口方法?Optional
?Stream
?Collection
和Stream
有什么区别?collect()
方法有什么用?forEach()
和forEachOrdered()
方法?map()
和mapToInt()
、 mapToDouble()
、 mapToLong()
方法是什么?filter()
方法的用途是什么?limit()
方法在流中的用途是什么?sorted()
方法的用途是什么?flatMap()
、 flatMapToInt()
、 flatMapToDouble()
、 flatMapToLong()
方法是什么?forEach()
将 10 个随机数打印到屏幕上?map()
方法显示唯一的数字平方?filter()
方法显示空行数?LocalDateTime
?ZonedDateTime
?Nashorn
?jjs
是什么?到内容
InputStream
类的哪些子类以及它们的用途是什么?PushbackInputStream
用途是什么?SequenceInputStream
用途是什么?OutputStream
类的哪些子类以及它们的用途是什么?Reader
类的哪些子类以及它们的用途是什么?Writer
类的哪些子类以及它们的用途是什么?PrintWriter
类和PrintStream
有什么区别?InputStream
、 OutputStream
、 Reader
、 Writer
有什么区别和共同点?File
类的哪些方法?FileFilter
接口了解多少?RandomAccessFile
了解多少?RandomAccessFile
有哪些文件访问模式?到内容
Serializable
描述序列化/反序列化过程。transient
关键字是什么意思?static
和final
字段修饰符对可串行性有什么影响?serialVersionUID
字段的作用是什么?serialVersionUID
字段的值?到内容
Thread
和Runnable
之间有什么区别?start()
和run()
方法有什么区别?static synchronized
方法运行时创建类的新实例?private
互斥体?wait()
和notify()
/ notifyAll()
方法如何工作?notify()
和notifyAll()
之间有什么区别?wait()
和notify()
方法只在同步块中调用?wait()
方法有什么区别?Thread.sleep()
和Thread.yield()
方法有什么区别?Thread.join()
方法如何工作?static synchronized
方法时,同步发生在什么对象上?volatile
、 synchronized
、 transient
、 native
的用途是什么?volatile
变量和原子变量有什么区别?java.util.concurrent.Atomic*.compareAndSwap()
和java.util.concurrent.Atomic*.weakCompareAndSwap()
之间有什么区别?Runnable
和Callable
这两个接口有什么区别?FutureTask
?CyclicBarrier
和CountDownLatch
之间有什么区别?Thread.stop()
方法?interrupted()
和isInterrupted()
之间有什么区别?submit()
和execute()
方法有什么区别?synchronized
和ReentrantLock
有什么区别?ReadWriteLock
?Semaphore
?push()
和pop()
)。Semaphore
编写一个最小的非阻塞堆栈(只有两个方法 - push()
和pop()
)。add()
、 get()
、 remove()
、 size()
)。BigInteger next()
方法编写一个类的线程安全实现,该方法返回序列的元素: [1, 2, 4, 8, 16, ...]
。synchronized
编写一个简单的多线程有界缓冲区。ReentrantLock
编写一个简单的多线程有界缓冲区。到内容
到内容
service()
方法?init()
方法?ServletConfig
?ServletContext
?ServletContext
和ServletConfig
之间有什么区别?ServletResponse
接口有什么用?ServletRequest
接口有什么用?Request Dispatcher
?sendRedirect()
和forward()
之间有什么区别?GenericServlet
和HttpServlet
之间有什么区别?HttpServlet
类被声明为抽象类?HttpServlet
类中有哪些主要方法?GET
和POST
方法有什么区别?PrintWriter
和ServletOutputStream
有什么区别?PrintWriter
和ServletOutputStream
?SingleThreadModel
接口的信息。encodeURL()
和encodeRedirectURL()
方法以及它们之间有什么区别?PageContext
了解多少?使用它有哪些好处?<c:set>
和<jsp:useBean>
之间有什么区别?<c:import>
和<jsp:include>
以及<%@include %>
指令之间有什么区别?web.xml
中配置标准 JSP 标签?JSPWriter
和 servlet PrintWriter
之间有什么区别?到内容
到内容
NULL
在SQL中的含义是什么?SELECT
语句的一般语法是什么?JOIN
?JOIN
?JOIN
还是子征服更好?HAVING
员是用什么?HAVING
和WHERE
的区别有什么区别?ORDER BY
是什么?GROUP BY
是什么?GROUP BY
如何处理NULL
值?GROUP BY
和DISTINCT
语句之间有什么区别?COUNT(*)
和COUNT({column})
之间有什么区别?EXISTS
陈述有什么作用?BETWEEN
商LIKE
的IN
是什么?UNION
关键字是用什么?PRIMARY
和UNIQUE
约束之间有什么区别?FOREIGN KEY
约束的列可以为NULL
吗?MERGE
陈述做什么?DELETE
和TRUNCATE
语句有什么区别?DATETIME
和TIMESTAMP
数据类型之间的区别。PIVOT
和UNPIVOT
运算符的目的是什么?EXCEPT
INTERSECT
什么?到内容
到内容
@Ignore
注释是什么?到内容
到内容
到内容
到内容
到内容
DOCTYPE
,为什么需要它?<head>
标签的目的是什么?<div>
和<span>
有什么区别?<em>
标签的目的是什么?<ol>
, <ul>
, <li>
标签是什么?<dl>
, <dt>
, <dd>
标签?<tr>
, <th>
, <td>
标签是什么?<img>
标签中写入alt
属性?到内容
#my
和.my
有什么区别?margin
和padding
之间有什么区别?0
和自动margin
中的auto
属性有什么区别?clear
属性是用什么?<p>
元素中使文本大胆?red
类的元素设置颜色红色?到内容
到内容
组件体系结构
kafka api
卡夫卡消费者
其他问题
与其他组件和系统的比较
到内容
到内容