java interview
1.0.0
Victoria Demidova がまとめた質問と回答
cmmttd による電報ボット
コンテンツへ
コンテンツへ
final
キーワードは何を意味しますか?main()
関数について何を知っていますか?abstract
修飾子はどこで何のために使用されますか?final
修飾子を使用してインターフェイス メソッドを宣言できないのはなぜですか?private
クラス変数にアクセスできますか? 「はい」の場合、どのようにして?static
修飾子はどの Java 構造に適用されますか?throws
セクションの要素の削除、追加、順序の変更?assert
ステートメントは何に使用されますか?finalize()
とは何ですか?なぜ必要なのでしょうか?finalize()
メソッドの完了に著しく長い時間がかかった場合、または実行中に例外がスローされた場合、ガベージ コレクターはどうなりますか?final
、 finally
、 finalize()
はどう違いますか?ClassCastException
がスローされるのはどのような場合ですか?String
クラスの特徴は何でしょうか?String
か?String
よりもchar[]
が推奨されるのはなぜですか?HashMap
で String が人気のキーなのはなぜですか?String
クラスのintern()
メソッドは何をするのでしょうか?switch
構造で文字列を使用することはできますか?String
、 StringBuffer
、 StringBuilder
の主な違いは何ですか?Object
クラスとは何ですか?どのような方法があるのでしょうか?clone()
メソッドがCloneable
インターフェイスではなくObject
クラスで宣言されているのはなぜですか?equals()
が必要なのでしょうか? ==
演算との違いは何ですか?equals()
同値関係を生成します。そのような態度にはどのような特徴があるのでしょうか?equals()
をオーバーライドしたい場合、オーバーライドされたメソッドに対してどのような条件を満たす必要がありますか?Object.equals()
メソッドをオーバーライドするためのルール。hashCode()
とequals()
の関係は何ですか?equals()
がオーバーライドされる場合、オーバーライドする必要がある他のメソッドはありますか?hashCode()
をオーバーライドせずに、 equals()
をオーバーライドするとどうなりますか?どのような問題が発生する可能性がありますか?hashCode()
とequals()
メソッドはObject
クラスにどのように実装されますか?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
メソッドがあるとしますFileNotFoundException
ブロックはどのような順序で処理されるべきでしょうか? catch
ブロックはいくつ実行されますか?コンテンツへ
List
、 Set
、 Map
、 SortedSet
、 SortedMap
、 Collection
、 Iterable
、 Iterator
、 NavigableSet
、 NavigableMap
。List
とSet
Collection
であるのに、 Map
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
の違いは何ですか?どのような場合に最初の方法を使用するのが良いでしょうか、またどのような場合に 2 番目の方法を使用するのが良いでしょうか?ArrayList
とLinkedList
どちらが高速ですか?LinkedList
内の要素に対するcontains()
メソッドの最悪の実行時間はどれくらいですか?ArrayList
内の要素に対するcontains()
メソッドの最悪の実行時間はどれくらいですか?LinkedList
のadd()
メソッドの最悪の実行時間はどれくらいですか?ArrayList
のadd()
メソッドの最悪の実行時間はどれくらいですか?ArrayList
から要素を削除するにはどうすればよいですか?この場合、 ArrayList
のサイズはどのように変化しますか?ArrayList
によって実装されたリストの中央から複数の隣接する要素を削除するための効率的なアルゴリズムを提案します。ArrayList.add()
呼び出すときに必要な追加メモリはどれくらいですか?LinkedList.add()
呼び出すときに追加メモリがどのくらい割り当てられますか?LinkedList
に 1 byte
プリミティブを格納するためのメモリの量を見積もってください。ArrayList
に 1 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
、単一リンク リスト、二重リンク リスト、または 4 リンク リストですか?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()
を持つキーによって 2 つの要素を HashMap に格納しようとした場合、 HashMap
どのように動作しますか? ただし、 equals() == false
である場合はどうなりますか?HashMap
のバケットの初期数はいくつですか?HashMap
からの要素に対する操作の時間計算量の推定値はどれくらいですか? HashMap
指定された要素のフェッチの複雑さを保証しますか?hashCode()
を持つキーを使用しても、 HashMap
リストに縮退する可能性はありますか?HashMap
内の要素が失われる可能性がありますか?byte[]
HashMap
のキーとして使用できないのはなぜですか?HashMap
におけるequals()
とhashCode()
の役割は何ですか?hashCode()
最大数はどれくらいですか?HashMap
にないキーの get(key) メソッドの最悪の実行時間はどれくらいですか?HashMap
内のキーの get(key) メソッドの最悪の実行時間はどれくらいですか?Comparable
インターフェイスを実装するためにHashMap
内のキーが必要ないにもかかわらず、二重リンク リストはいつでも赤黒ツリーに変換できるのはなぜですか?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(...)
) を使用して、2 つのコレクションの対称差分を実装します。collection
の要素を 1 行で配列にコピーするにはどうすればよいですか?List
からの 1 回の呼び出しで、最初と最後の 3 つを除くすべての要素を含むList
を取得するにはどうすればよいですか?HashSet
1 行でArrayList
に変換するにはどうすればよいですか?ArrayList
1 行で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
変数とAtomic変数の違いは何ですか?java.util.concurrent.Atomic*.compareAndSwap()
とjava.util.concurrent.Atomic*.weakCompareAndSwap()
の違いは何ですか。Runnable
とCallable
2 つのインターフェイスの違いは何ですか?FutureTask
とは何ですか?CyclicBarrier
とCountDownLatch
の違いは何ですか?Thread.stop()
メソッドの使用が推奨されないのはなぜですか?interrupted()
とisInterrupted()
の違いは何ですか?submit()
とexecute()
メソッドの違いは何ですか?synchronized
とReentrantLock
の違いは何ですか?ReadWriteLock
とは何ですか?Semaphore
とは何ですか?push()
とpop()
のみ)。Semaphore
を使用して、最小限の非ブロッキング スタック ( push()
とpop()
の 2 つのメソッドのみ) を作成します。add()
、 get()
、 remove()
、 size()
) の 4 つのメソッドのみ)。[1, 2, 4, 8, 16, ...]
を返す非ブロッキングBigInteger next()
メソッドを使用して、クラスのスレッドセーフな実装を作成します。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
とサーブレットPrintWriter
の違いは何ですか?コンテンツへ
内容に
NULL
SQLで何を意味しますか?SELECT
ステートメントの一般的な構文は何ですか?JOIN
何ですか?JOIN
がありますか?JOIN
またはサブクリーリーを使用する方が良いですか?HAVING
を使用しているのは何ですか?HAVING
とWHERE
声明の違いは何ですか?ORDER BY
何に使用されますか?GROUP BY
何に使用されていますか?GROUP BY
NULL
値をどのように処理しますか?GROUP BY
とDISTINCT
声明の違いは何ですか?COUNT(*)
とCOUNT({column})
の違いは何ですか?EXISTS
Statementは何をしますか?LIKE
、 IN
、 BETWEEN
何がありますか?UNION
キーワードは何に使用されていますか?PRIMARY
とUNIQUE
制約の違いは何ですか?FOREIGN KEY
制約の対象となる列はNULL
になりますか?MERGE
ステートメントは何をしますか?DELETE
とTRUNCATE
ステートメントの違いは何ですか?DATETIME
とTIMESTAMP
データ型の違いを説明してください。PIVOT
およびUNPIVOT
オペレーターの目的は何ですか?INTERSECT
EXCEPT
ですか?内容に
内容に
@Ignore
アノテーションは何ですか?内容に
内容に
内容に
内容に
内容に
DOCTYPE
とは何ですか?なぜ必要なのですか?<head>
タグの目的は何ですか?<div>
と<span>
の違いは何ですか?<em>
タグの目的は何ですか?<ol>
、 <ul>
、 <li>
タグは何ですか?<dl>
、 <dt>
、 <dd>
タグは何ですか?<tr>
、 <th>
、 <td>
タグは何ですか?<img>
タグにalt
属性を書く必要がありますか?内容に
#my
と.my
の違いは何ですか?margin
とpadding
の違いは何ですか?margin
プロパティの値0
とauto
の違いは何ですか?clear
プロパティは何に使用されていますか?<p>
要素のテキストを太字にする方法は?red
すべての要素に色を赤く設定するにはどうすればよいですか?内容に
内容に
コンポーネントアーキテクチャ
Kafka API
カフカ消費者
その他の質問
他のコンポーネントおよびシステムとの比較
内容に
内容に