Java の最も難しい面接の質問 10 選。
Java の難しい質問と回答Java の面接 の難しい質問とは何ですか? なぜ人々は面接に行く前にそれらを勉強するのでしょうか?
まあ、 Javaからの難しい質問を期待していなくても、難しい質問に備えて準備するのは当然のことです。
難しくてトリッキーな質問に備えておくと自信が高まり、他の質問にも答えやすくなります。一方で、難しい質問に対する準備をしていないと、面接や筆記試験中にその質問が現れて不快な思いをすることになるでしょう。
しかし、何が難しい質問とみなされるかの定義は普遍的ではなく、同じ質問でも、あるプログラマにとっては難しくても、別のプログラマにとっては簡単である可能性があります。したがって、
Java の面接に参加する前に、難しい質問の個人的なリストを準備しておくとよいでしょう。この記事では、あなたに役立つかもしれない 10 個の難しい質問の私独自のリストを紹介します。
Java の面接での 10 の難しい質問とその回答 すでに書きましたが、ここでは、面接中に遭遇する可能性のある 10 の難しい質問のリストと、トリックを紹介します。
これらの質問はJavaカーネルのみに関係しており、
J2EEには影響しません。先ほども述べたように、これらの質問はあなたにとって単純で、すでに答えを知っているかもしれません。しかし、それにもかかわらず、彼らは面接中にそれらに遭遇しますし、私は個人的にそれらに答えられなかった人々を知っています。
wait() メソッドと Notify() メソッドが Thread ではなく Object クラスで宣言されているのはなぜですか? 一方で、
Java言語を開発したのはあなたではありません。なぜこのように開発され、他の言語では開発されなかったのかをどうやって知ることができるでしょうか? しかし、常識と
Javaプログラミングに関する深い知識を適用すれば、簡単に答えを見つけることができます。この投稿を読んでください -
なぜwait()とNotice() がThreadではなくObjectクラスで宣言されているのか。
Java では多重継承がサポートされていないのはなぜですか? この質問の難しさは、主にあなたの答えが質問者を満足させない可能性があることです。ほとんどの場合、具体的な例が必要であり、それを列挙すると面接官は喜ぶでしょう。もう一度、この質問に答えるために 、私自身のブログへのリンクを示します。
なぜJava は多重継承をサポートしないのか。
なぜ Java は演算子のオーバーロードをサポートしないのですか? 同じカテゴリからの もう 1 つの難しい
Java の質問。
C++ は演算子のオーバーロードをサポートしていますが、
Javaにはそれがないのはなぜですか? 人々はこれや同様の議論をし、
Javaでは
文字列を結合するために+演算子がオーバーロードされているとさえ言うかもしれませんが、だまされないでください。この難しい質問に対する詳しい答えについては、
Java で演算子のオーバーロードがサポートされていない理由を参照してください
Java では文字列が不変なのはなぜですか? 私のお気に入りの面接の質問は、難しくてトリッキーですが、非常に有益でもあります。
また、なぜJavaで文字列が
Final と宣言されるのかを尋ねられるかもしれません。
Java の文字列が Final で不変である理由をここで読んでください。
Java でパスワードを保存する場合、文字列よりも文字配列の方が優れているのはなぜですか? そして、文字列に関するもう 1 つのトリッキーな質問ですが、信じてください、これに答えられる
Javaプログラマーはほとんどいません。
これはJavaコアに関する非常に難しい質問であり答えるには
Stringクラスについての十分な知識が必要です。読む
答えを見つけるために
パスワードを保存する場合、文字列よりも文字配列の方が優れているのはなぜですか。
二重チェックロックを使用して Java でスレッドセーフなシングルトンを作成するにはどうすればよいですか?
この質問を別の言い方で表現すると、スレッドセーフなシングルトンとは 何か、またその作成方法は何か、ということになります。
Java 5より前では、スレッドセーフなシングルトンを作成する唯一の方法は二重ロックすることでした。そうしないと、複数のスレッドが同時にシングルトンにアクセスしようとすると、それぞれが異なるインスタンスを取得することになります。
Java 5 以降、
この問題は Enum を使用して解決されました。しかし、あなたに面接している人がどうしてもと言うなら、このコードを書いてください。
volatileに設定することを忘れないでください。詳細はこちら
Java のシングルトンに関する 10 の質問
デッドロックを引き起こす Java プログラムを作成し、それを修正します。 古典的ではありますが、それでも難しい質問の 1 つであり、その答えにはマルチスレッド アプリケーションの作成経験が必要です。
Java でデッドロックを作成または防止する方法を 参照してください
。シリアル化可能なクラスにシリアル化不可能なフィールドが含まれている場合はどうなりますか。それを修正するにはどうすればよいですか? このようなクラスをシリアル化しようとすると
NotSerializableExceptionがスローされます。これを修正する最も簡単な方法は、そのようなフィールドを
transient として宣言することです。さらに詳細が必要な場合は、
連載の質問トップ 10 を参照してください。
Java の同期メソッドから wait と Notice が呼び出されるのはなぜですか?
Javaコア についてもう 1 つの質問があります。
wait()と
Notify()は呼び出されるオブジェクトのミューテックスを必要とするため、これらは
同期メソッドまたは同期ブロックから呼び出されます。さて、完全な答えはここで読むことができます -
なぜ wait() と Notice() を同期されたコンテキストで呼び出す必要があるのか 。
Java で静的メソッドをオーバーライドできますか?
子孫クラスに同名のメソッドを作成するとコンパイルエラーになりますか? いいえ、
Java では静的メソッドをオーバーライドできません。ただし、子孫クラスに祖先クラスと同じ名前の静的メソッドを作成しても、コンパイル エラーは発生しません。これを「メソッド隠蔽」といいます。ここでより詳細な回答を読むことができます:
Java で静的メソッドをオーバーライドできますか? これは
Java に関する難しい質問のリストでした。
そしてそれらへの答え。経験豊富なプログラマーにとって、それらの一部はそれほど複雑ではないように見えますが、トリックが含まれており、初心者プログラマーにとってそれらに答えるのはそれほど簡単ではありません。
Javaの難しい質問に遭遇した場合は、私たちと共有してください。
原著
GO TO FULL VERSION