14 よくある Java 面接の質問と回答 [2022 年]
公開: 2022-05-06夢の仕事の Java 面接の予定はありますか? 面接で成功するのに役立つ Java 面接の質問と回答を次に示します。
1982 年、James Gosling は、オブジェクト指向プログラミングの原則に従う高水準言語 Java に投資しました。 これは、最も人気があり、広く使用されているプログラミング言語の 1 つです。 初心者やプロのソフトウェア開発者は、潜在的なキャリアの選択肢としてそれを選択します.
Java は、クラス、継承、JSON、イテレータ、列挙、揮発性変数、一時的、休止状態、HTTP トンネリング、および抽象クラスに関するものです。 C++ および C プログラミング言語から構文を派生させます。 ただし、面接担当者が尋ねる可能性のある重要な質問を知ることは不可欠です。
Java 開発者を支援するために、重要なインタビューの質問と回答をいくつか紹介します。
Java は純粋なオブジェクト指向言語ですか? あなたの答えを説明しなさい。
いいえ、Java は純粋なオブジェクト指向言語ではありません。 オブジェクトではない、short、byte、double、float、long、char、boolean などのプリミティブ データ型をサポートします。 ただし、オブジェクト指向の側面の多くは満たしています。
Java がプラットフォームに依存しない言語として人気があるのはなぜですか?
Java プログラミング言語は、ランタイム環境 (JRE) を備えたコンパイラーにより、ソフトウェアやハードウェアに依存しません。 Java コンパイラはコードを即座にコンパイルし、バイト コードに変換します (プラットフォームに依存しません)。 このため、コードは複数のシステムで実行できるため、非常に人気があります。
JDK、JRE、および JVM の基本的な違いを説明します。
Java 開発キット | Javaランタイム環境 | Java 仮想マシン |
JDK は、Java プログラムの文書化、コンパイル、およびパッケージ化に必要なツールです。 | Java バイトコードは JRE を使用して実行されます。 | JVM は、Java バイトコードの実行を容易にするランタイム環境を提供する抽象マシンです。 |
開発ツールと JRE が付属しています。 | これにより、JVM 実装はよりアクセスしやすくなり、物理的に存在できます。 | JVM には、実装、仕様、およびランタイム インスタンスが含まれます。 |
標準版、マイクロ版、エンタープライズ版の Java プラットフォームを実装しています。 | いくつかのファイルとライブラリが含まれているため、JVM を簡単に使用できます。 | コードの実行、検証、およびロードを実行します。 |

Java クラスのアクセス指定子を垣間見ることができますか?
クラス名の前に使用するキーワードは、Java のアクセス指定子です。 さまざまなタイプを使用してアクセス スコープを示します。
- Protected –これは、同じクラスと同じパッケージ (サブクラスまたはそれらが属する場所) のフィールドまたはメソッドにアクセスしますが、他のクラスからはアクセスしません。
- Private –これは、同じクラスのフィールドまたはメソッドに、それらが属する場所からアクセスします。
- Public –メソッド、クラス、およびフィールドは、コード全体で簡単にアクセスできます。
- デフォルト – ネイティブ パッケージや外部からではなく、同じパッケージからクラス、フィールド、およびメソッドにアクセスできます。
ローカル変数とインスタンス変数とはどういう意味ですか?
ローカル変数 –これらの変数は、それらの内部でのみアクセスできるコンストラクター、関数、またはブロック内で使用できます。 ブロック スコープの制限は、ローカル変数に適用されます。 他のクラス メソッドは、メソッド内で宣言されたローカル変数にアクセスしたり、それを認識したりすることはできません。

インスタンス変数 –すべてのメソッドは、メソッドの内外で宣言されたクラス内のこれらの変数にアクセスできます。 変数は、オブジェクトのプロパティを垣間見ることができます。 変更があった場合、他のすべてのクラス インスタンスに影響を与えることなく、インスタンスのみが影響を受けます。
JITコンパイラとは?
Just In Time Compiler は、バイトコードをコンパイルするアプリケーションのパフォーマンスを向上させ、時間の消費を削減するために使用されます。 また、コードを JVM から CPU 命令セットに変換するのにも役立ちます。
singleton クラスを 1 行で説明します。
これは、一度に 1 つのインスタンスまたはオブジェクトをレンダリングする固有のクラス タイプです。
オブジェクトのクローン作成とは
オブジェクトのクローン作成とは、Java オブジェクトのクローン コピーを作成することを意味し、開発者が後でそれを実装するのに役立ちます。 Java 開発者は clone() メソッドを使用して、 java.lang.Cloneable
インターフェイスを簡単に実装できます。
コンストラクタについて説明します。
コンストラクターは、クラスと同じ名前でオブジェクトを初期化できるコードのブロックです。 それに伴い、オブジェクトは自動的に作成され、戻り値の型はありません。 次のような 2 種類のコンストラクターがあります。
- パラメーター化されたコンストラクター – コンストラクターは、引数を取り、指定された値を使用するインスタンス変数を初期化できます。
- デフォルト コンストラクター – コンストラクターはインスタンス変数を初期化し、デフォルトで引数のコントラクターを作成せず、入力を受け取りません。 他のコンストラクターは定義されていません。
Javaの==とequals()の違いは何ですか?
等値演算子 (==) は、Java プログラミング言語でオブジェクトとプリミティブを比較する二項演算子です。 Object クラスは、メソッドをpublic boolean equals(Object o)
として提供します。 同時に、 equals()
は 2 つのオブジェクトの等価性をチェックし、ビジネス ロジックで定義された Java で Objects クラスを定義します。
TreeSet と HashSet を区別します。
ツリーセット | ハッシュセット |
ソートされた順序で要素を維持します。 | 要素はソートされた順序で維持されません。 |
異種オブジェクトを許可します。 | 異種オブジェクトは許可されません。 |
データ ストレージにツリーを使用して SortedSet インターフェイスを実装します。 | ハッシュ テーブルを介して実装します。 |
二重ブレースの初期化について説明します。
Java では、Double Brace Initialization は 2 つの独立したプロセスを結合します。 二重中かっこの初期化では、2 つの中かっこを使用して、匿名の内部クラスと初期化ブロックをそれぞれ作成します。 「this」ポインターは、内部クラスが単一のステートメントで初期化と作成の両方のために外部クラスを参照するのに役立ちます。
Java 文字列プールを定義します。
文字列のコレクションは、新しいオブジェクトが作成されるヒープ メモリでの Java 文字列プールの並べ替えとして知られています。 String Pool はオブジェクトの可用性をチェックし、同じ参照が変数に返されます。 それ以外の場合は、それぞれの参照に戻って新しいオブジェクトが作成されます。
Javaのコレクションクラスとはどういう意味ですか?
オブジェクトのグループを操作およびソートするのに役立つフレームワークを表すアーキテクチャと考えてください。 コレクションは、メソッド、クラス、インターフェイスなどのフレームワークを含む、削除、検索、操作、並べ替え、編集、挿入などのタスクを実行するのに役立ちます。
最後の言葉
間違いなく、Java は、印象的な標準ライブラリと強力なツールを備えた、最も人気のある高水準プログラミング言語の 1 つです。 同時実行ベースの問題など、いくつかの問題に対するスレッド サポートを提供します。 また、製品に安定性を組み合わせた組み込み機能と使いやすい構文も備えています。
Java をマスターするには、これらのオンライン Java コースのいずれかに登録することを検討してください。