JavaRush /Java Blog /Random-JA /コーヒーブレイク#101。Java 面接で重要な 19 の質問と短い回答例

コーヒーブレイク#101。Java 面接で重要な 19 の質問と短い回答例

Random-JA グループに公開済み
出典: Hackernoon Java のインタビューでよく出てくる質問と回答をいくつか紹介します。

1. Java 開発キット (JDK) とは何ですか?

JDK は、Java アプリケーションの開発に必要なツールとライブラリが含まれるソフトウェア開発キットです。

2. Java ランタイム環境 (JRE) は何をしますか?

JRE は、Java バイトコードが実行されるランタイム環境を指します。JRE は、ランタイムのファイルとライブラリを維持します。

3. Java 仮想マシン (JVM) は何をしますか?

JVM は、Java バイトコードを実行できるランタイム環境を提供する抽象マシンです。

4. Java はプラットフォームに依存しません。なぜ?

他のプログラミング言語では、ソース コードは実行可能コードにコンパイルされるため、コードはすべてのプラットフォームで実行できるわけではありません。JVM を使用すると、バイトコードをどのプラットフォームでも理解できるようにすることができ、このバイトコードはプラットフォームに依存しません。JVM はプラットフォームごとに異なりますが、Java はどのタイプのプラットフォームにも依存しないため、プラットフォームに依存しません。

5. Java は 100% オブジェクト指向ではありません。なぜ?

Java は、boolean、byte、char、int、float、double、long、short など、オブジェクトではない 8 つのプリミティブ データ型を使用するためです。

6. Java のコンストラクターとは何ですか?

コンストラクターは、オブジェクトを初期化するために使用されるコードのブロックです。構文:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
例:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
結果:
26

7. シングルトン クラスは何をしますか?

シングルトン クラスは、一度に 1 つのオブジェクト (クラス インスタンス) のみを持つことができます。オブジェクトが作成され、シングルトンクラスをインスタンス化しようとすると、新しい変数も作成された最初のオブジェクトを指します。

8. Java のラッパー クラスとは何ですか?

ラッパー クラスを使用すると、プリミティブ データ型をオブジェクトに変換したり、その逆を行うことができます。例:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. Java の == 演算子と等価メソッドの違いは何ですか?

一般に、==は演算子、equals()はメソッドです。==演算子を使用して、ヒープ上の比較オブジェクトを参照します。Java には演算子のオーバーロードという概念がありません。それにもかかわらず、==演算子は2 つのオブジェクトのアドレスが同じかどうかをチェックするために使用されます。つまり、==演算子は、両方のオブジェクトが同じメモリ位置を指しているかどうかをチェックします。==演算子は、オブジェクト型とブール値などのプリミティブ型を比較す​​るためにも使用されます。一方、Stringクラスのequals()メソッドは2 つのオブジェクトの内容を比較します。

10. Java における OOP の概念は何ですか?

  • 抽象化とは、内部実装を隠し、必要な情報のみを表示することと定義されます。
  • 継承は、親クラス (スーパークラス) のすべてのプロパティと動作を子クラス (サブクラス) に変換する手順です。
  • カプセル化は、データまたは変数とメソッドを一緒にバインドする手順です。
  • ポリモーフィズムとは文字通り、多くの形式を意味します。ポリモーフィズムとは、メソッドがさまざまなタスクを実行できる機能です。これはメソッドを使用して実現できます。

11. Java では main() メソッドが常に静的であるのはなぜですか?

オブジェクトの静的メソッドを呼び出す必要がないためです。main()が非静的メソッドの場合、Java 仮想マシンは最初にオブジェクトを作成してからmain()メソッドを呼び出す必要があり、これにより追加のメモリが割り当てられます。

12. Java では文字列が不変なのはなぜですか?

Stringオブジェクトは文字列定数プールにキャッシュされるため、Java の文字列は不変です。

13. Java の配列と ArrayList とは何ですか?

配列は、同様の型の要素を一定数含むオブジェクトです。
  1. ArrayList はコレクション構造の一部です。

  2. ArrayList はリスト インターフェイスを実装します。

  3. ArrayList は、要素が追加されると動的に拡大し、要素が削除されると縮小するスケーラブルな配列です。

  4. 頻繁に取得操作を行う場合は、Java ArrayListが最適です。ArrayListの要素は連続したメモリ位置に格納されるためです。

  5. ArrayList には、 int、double、char、long などのプリミティブ データ型を含めることはできません。

  6. ArrayList にはStringおよびラッパー クラス オブジェクト ( DoubleInteger )を含めることができます。

  7. ArrayList を使用すると、要素を複製できます。

  8. ArrayList は挿入順序を保持します。

  9. ArrayList は、その機能性と柔軟性により広く使用されています。これは、オブジェクトの異種コレクションを保存するように設計されています。

  10. ArrayList には、任意の数の null 値を含めることができます。

14. Java における HashSet と HashMap の違いは何ですか?

ハッシュセット内:
  1. オブジェクトをHashSetに保存できます。たとえば、HashSet: {"Hello", "World"}

  2. 広告掲載オーダーは保存されません。ハッシュコードベースです。

  3. add()メソッドがあります。

  4. Setインターフェイスを実装します。

  5. 重複した要素は許可されません。

  6. 単一の null 値を許可します。

ハッシュマップの場合:
  1. HashMapでは、キーと値のペアを保存できます。たとえば、{1 -> “Hello”、2 -> “World”} となります

  2. 広告掲載オーダーはサポートされていません。これはハッシュ関数に基づいています。

  3. put()メソッドがあります。

  4. マップインターフェイスを実装します。

  5. 重複した値を許可します。重複キーは許可されません。

  6. 単一の null キーと任意の数の null 値を許可します。

16. Java における this と super の違いは何ですか?

Java のthisキーワード:
  1. これは、現在のオブジェクトを参照する参照変数であるキーワードです。

  2. 現在のクラス メソッドを暗黙的に呼び出すために使用できます。

  3. this()キーワードは、現在のクラスのコンストラクターを呼び出すために使用されます。

  4. これは、メソッドを呼び出すときに引数として渡すために使用できます。

Java のスーパーキーワード:
  1. superキーワードは、親クラスの直接のオブジェクトを参照するために使用される参照変数です。

  2. superを使用すると、親クラスのメソッド、親クラスのコンストラクターを直接呼び出したり、基本クラスのメソッドにアクセスしたりできます。

17. Java の Break および continue ステートメントとは何ですか?

ループ内でBreakステートメントが発生すると、ループは終了し、制御は同じループ内の次のステートメントに移ります。例:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
結果:
12
continue ステートメントは、特定の条件に応じてループの次の反復に移動します。例:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
結果:
2 4 6 8 10

18. Java のアクセス修飾子とは何ですか?

アクセス修飾子は、変数、コンストラクター、クラス、またはメソッドの制限またはスコープを定義します。Java には 4 種類のアクセス修飾子があります。
  1. プライベートアクセス修飾子。
  2. 保護されたアクセス修飾子。
  3. 共有修飾子。
  4. デフォルトのアクセス修飾子。

19. Java の for ループと for each ループの違いは何ですか?

forループ:
  1. 実行可能なシーケンスはありません。for ループでは、必要に応じてカウンターを変更できます。
  2. JDK 1 の最初の部分に登場しました。
  3. インターフェースを実装する必要はありません。
  4. インデックスにアクセスできます。したがって、配列内の要素を置き換えることができます。
  5. カウンタは増減できます。
ループについて:
  1. 順次実施。カウンターが1つ増えます。
  2. JDK 5で初めて登場しました。
  3. for-each ループを使用してコンテナーを反復するには、コンテナーが Iterable インターフェイスを実装する必要があります。
  4. 配列インデックスにアクセスできないため、このインデックスの要素を置換することはできません。
  5. 昇順でのみ反復でき、減少することはできません。
for each ループforループの違いの例:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
for および for each ループの結果:
ヴィラット・ロヒト・ドーニ。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION