Java 関連の仕事を探している場合は、新規応募者向けの Java 面接の質問に備える必要があります。すべての面接は異なり、仕事の範囲も異なりますが、2023 年の Java 面接のトップ質問と回答を参考にして、Java 面接で飛躍して成功するのに役立ちます。
パート 1 – Java 面接の質問 (基本)
この最初のパートでは、面接での基本的な質問と回答について説明します。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
1. Java の文字列バッファーと文字列ビルダーの違い
答え:
これは面接官が好む質問の 1 つです。しかし、候補者たちはしばしば悲惨な答えを返しました。
理解を深めるために、文字列バッファーと文字列ビルダーの注目すべき違いをいくつか示します。
2. StringBuilder は、StringBuffer クラスの非同期バージョンです。 StringBuilder
のメソッド
たとえば、append() メソッドのオーバーロードされたバージョンはすべて同期されません。
- StringBuilder は、同期メソッドに関連付けられたロックの取得と解放のオーバーヘッドがないため、StringBuffer よりも高速に動作します。
- StringBuffer はスレッドセーフとみなされますが、StringBuilder はスレッドセーフではありません。同期が必要な場合は StringBuffer クラスを使用することをお勧めします。 StringBuilder のインスタンスは、複数のスレッド間で共有しないでください。
- StringBuffer は古いクラスです。これは最初のリリースから JDK に組み込まれていますが、StringBuilder は比較的新しいクラスです。
3.整数配列内で最も顕著な最小の数値を見つける Java プログラム
答え:
この質問に答えるための簡単な 5 つのポイント
- MinimumMinimumArrayDemo.java という名前の Java ソース ファイルを作成し、コードをコピーして、お気に入りの IDE でコンパイルして実行します。
- プログラムに渡された int 配列の最も顕著な数値と最小の数値を出力する、最大値と最小値 (int [] 数値) というメソッドを作成します。
- 最大値と最小値の変数を使用して、配列の最大値と最小値を保存します。最初に、最大値は Integer.MIN_VALUE で初期化され、最小値は Integer.MAX_VALUE で初期化されます。
- ループのすべての反復に対して、現在の数値を最大値から最小値まで比較し、それに応じて更新します。
- 数値が最大値よりも重要な場合、最小値よりも小さくすることはできません。つまり、最初の条件が正確かどうかを確認する必要はありません。これが、if-else コード ブロックを使用した理由です。else 部分は、最初の条件が無効な場合にのみ実行されます。
Java で配列から最大の要素を見つけるロジックを以下に示します。
Integer.MAX_VALUE で変数を割り当てる代わりに、配列の最初の要素を割り当てました。
3. C++ と Java の違いは何ですか?
答え:
C++ と Java は、構文上の比較においてのみ類似しています。相違点を以下に示します:
- Java はマルチスレッドです
- Java にはポインターがありません
- Java には自動メモリ管理 (ガベージ コレクション) があります
- Java はプラットフォームに依存しません
- Java にはコメント ドキュメントのサポートが組み込まれています
- Java には演算子のオーバーロードがありません
Java は多重継承を提供しません
パート 2 – Java 面接の質問 (上級)
次に、高度な面接の質問を見てみましょう。
4.抽象クラスとインターフェイスの違いは何ですか?
答え:
-
多重継承: 抽象クラスは 1 つの抽象クラスのみを継承できます。ただし、クラスはインターフェイス内に複数のインターフェイスを実装する場合があります。これは、インターフェイスが多重継承をサポートしているのに対し、抽象クラスはサポートしていないことを証明しています。
-
実装: 抽象クラスは、不完全なメンバーと完全なメンバーを含むためデフォルトのコードを提供できますが、インターフェイスは不完全なメンバーを含むためコードを提供できません。
-
フィールド: 抽象クラスではフィールドと制約を定義できますが、インターフェイスではフィールドを定義できません。
-
速度: インターフェイスと比較すると、抽象クラスは、対応するクラスのメソッドを見つけるのにより多くの時間を必要とするため、高速です。
-
使用法: 抽象クラスは、親子関係で共通の機能を共有したい場合に登場しますが、インターフェイスはポリモーフィズム、分離、標準化を定義および強制するために使用されます
5. Java のプライベート、プロテクト、パブリック、パッケージ修飾子またはキーワードの違い
答え:
Java のプライベート vs パブリック vs プロテクト vs パッケージ
Java には、プライベート、プロテクト、パブリック、パッケージ レベルという 4 つのアクセス修飾子があります。
これらのアクセス修飾子は、それが適用されるクラス、メソッド、または変数のアクセシビリティを制限するように機能します。各アクセス修飾子の機能と相互の違いについて以下に説明します
Java のプライベートキーワード
- Java の private 修飾子は、Java のメンバー フィールド、メソッド、またはネストされたクラスに適用できます。
- 最上位クラスでは private 修飾子を使用できません。
- プライベート変数、メソッド、およびクラスは、それらが宣言されているクラスでのみアクセスできます。
- プライベートは、Java API が提供するカプセル化の最高の形式であり、可能な限り使用する必要があります。
Java では、デフォルトで変数を private として宣言するのがベストなコーディング方法です。プライベート メソッドは、それが宣言されているクラスからのみ呼び出すことができます。
Java のパッケージまたはデフォルトのアクセス レベル
- パッケージは、Java でパッケージを宣言するために使用されるキーワードです。パッケージとは、Java のクラスが属するディレクトリです。
- パッケージまたはデフォルトのアクセス レベルは、private に次いで 2 番目に高い制限的なアクセス修飾子であり、package-private として宣言された変数、メソッド、またはクラスは、それが属するパッケージ上でのみアクセス可能です。
デフォルト修飾子の良い点は、クラスレベルのアクセス修飾子がない場合、トップレベルのクラスもパッケージプライベートにできることです。
Java で保護されたキーワード
変数 protected means を宣言すると、クラスを拡張すれば誰でもそれを使用できます。最上位クラスも同様に保護することはできません。
Java のパブリックキーワード
public は Java プログラミング言語で最も制限の少ないアクセス修飾子であり、フィールド、メソッド、またはクラスをデフォルトで public として宣言するのは悪い習慣です。これは、一度 public にすると、内部で変更を加えるのが非常に困難になるためです。クラスの構造は、それを使用するすべてのクライアントに影響します。
クラス変数またはインスタンス変数を作成すると、パブリックはカプセル化の原則にも違反します。これはまったく良くなく、メンテナンスに悪影響を及ぼします。
おすすめ記事
「Java 面接の質問」に関するこの EDUCBA 情報が有益だったことを願っています。詳細については、EDUCBA のおすすめ記事をご覧ください。
- Java 開発者インタビューの質問
- Java マルチスレッドに関する面接の質問
- J2EE 面接の質問
- Java String のインタビューの質問
以上がJava の面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。