夢の仕事のために Java の面接を受ける予定はありますか?ここでは、面接を勝ち抜くのに役立つ Java 面接の質問と回答を紹介します。
1982 年、James Gosling は、オブジェクト指向プログラミングの原則に従った高級言語 Java に投資しました。最も人気があり、広く使用されているプログラミング言語の 1 つです。初心者やプロのソフトウェア開発者は、潜在的なキャリアの選択肢としてこれを選択します。
Java は、クラス、継承、JSON、イテレータ、列挙、揮発性変数、一時的、休止状態、HTTP トンネリング、および抽象クラスに関するものです。 C++ および C プログラミング言語から構文を派生します。ただし、面接官が尋ねる可能性のある重要な質問を知っておくことが重要です。
Java 開発者を支援するために、面接での重要な質問と回答をいくつか紹介します。
![Java 面接でよくある 14 の質問と回答 [2023]](https://i.ytimg.com/vi/YZTvQB7z9zs/maxresdefault.jpg)
Java は純粋なオブジェクト指向言語ですか?あなたの答えを説明しなさい。
いいえ、Java は純粋なオブジェクト指向言語ではありません。 short、byte、double、float、long、char、boolean などのオブジェクトではないプリミティブ データ型をサポートします。ただし、オブジェクト指向の多くの側面は満たしています。
![Java 面接でよくある 14 の質問と回答 [2023]](https://reashu.com/wp-content/uploads/2021/11/0908dbcf41cd1ea186489a05fcee7280.png)
Java がプラットフォームに依存しない言語として人気があるのはなぜですか?
Java プログラミング言語は、ランタイム環境 (JRE) を備えたコンパイラーにより、ソフトウェアやハードウェアに依存しません。 Java コンパイラはコードを即座にコンパイルし、バイト コード (プラットフォームに依存しない) に変換します。このため、コードは複数のシステムで実行できるため、非常に人気があります。
![Java 面接でよくある 14 の質問と回答 [2023]](https://reashu.com/wp-content/uploads/2022/01/45f5ba04ca50eaa6049a2f33c35142f9.png)
JDK、JRE、および JVM の基本的な違いを説明します。
Java開発キット | Javaランタイム環境 | Java仮想マシン |
JDK は、Java プログラムを文書化し、コンパイルし、パッケージ化するために必要なツールです。 | Java バイトコードは JRE を使用して実行されます。 | JVM は、Java バイトコードの実行を容易にするランタイム環境を提供する抽象マシンです。 |
開発ツールとJREが付属しています。 | これにより、JVM 実装はよりアクセスしやすくなり、物理的に存在できるようになります。 | JVM には、実装、仕様、およびランタイム インスタンスが含まれます。 |
Standard Edition、Micro Edition、Enterprise Edition の Java プラットフォームを実装します。 | これにはいくつかのファイルとライブラリが含まれており、JVM の使用が容易になります。 | コードの実行、検証、ロードを実行します。 |
![Java 面接でよくある 14 の質問と回答 [2023]](https://care-infocom.jp/article/wp-content/uploads/2020/01/518-1024x538.png)
Java クラスのアクセス指定子について少し覗いてみませんか?
クラス名の前に使用するキーワードは、Java のアクセス指定子です。これは、さまざまなタイプを使用してアクセス範囲を示します。
- Protected – これは、同じクラスおよび同じパッケージ (サブクラスまたはそれらが属する場所) からフィールドまたはメソッドにアクセスしますが、他のクラスからはアクセスしません。
- プライベート – これは、同じクラスおよびそれらが属する場所からフィールドまたはメソッドにアクセスします。
- パブリック – メソッド、クラス、フィールドにはコード全体から簡単にアクセスできます。
- デフォルト – ネイティブ パッケージや外部からではなく、同じパッケージからクラス、フィールド、メソッドにアクセスできます。
![Java 面接でよくある 14 の質問と回答 [2023]](https://sarhato.falf.jp/wp-content/uploads/2022/12/mensetsu_question-1024x538.png)
ローカル変数とインスタンス変数とはどういう意味ですか?
ローカル変数 – これらの変数は、コンストラクター、関数、またはブロック内でのみ使用でき、その内部でのみアクセスできます。ブロック スコープ制限はローカル変数に適用されます。他のクラス メソッドは、メソッド内で宣言されたローカル変数にアクセスしたり、その変数を認識したりすることはできません。
インスタンス変数 – すべてのメソッドは、メソッド内外で宣言されたクラス内のこれらの変数にアクセスできます。変数はオブジェクトのプロパティを垣間見ることができます。変更が行われた場合、他のすべてのクラス インスタンスには影響せず、インスタンスのみが影響を受けます。
JITコンパイラとは何ですか?
Just In Time Compiler は、バイトコードをコンパイルするアプリケーションのパフォーマンスを向上させ、時間の消費を削減するために使用されます。また、コードを JVM から CPU 命令セットに変換するのにも役立ちます。
シングルトンクラスを一行で説明します。
これは、一度に 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 コースのいずれかに登録することを検討してください。