Java 面接の準備には、必ずいくつかの比較的大規模なモジュール テスト ポイントが含まれます。配列は Java の独立したモジュールであり、その中の知識ポイントが完全な知識構造を形成していると言えます。実際の検査では、変数の議論やアルゴリズムの実際の適用などが含まれます。以下では、共通する事項について説明します。 Java 配列のインタビューの質問を共有します。
1. 基礎知識
1. Java 変数は初期化する必要がありますか?
不確かな。 Java 配列変数は参照データ型変数であり、配列オブジェクト自体ではありません。配列変数が有効な配列オブジェクトを指している限り、配列変数を使用できます。配列の初期化では、配列変数は初期化されませんが、配列オブジェクトが初期化されます。つまり、配列オブジェクトに連続メモリ空間が割り当てられ、この連続メモリ空間が配列の長さになります。
2. すべての基本型変数はスタック メモリに配置されますか?
間違っている。これは次のように言えます。すべてのローカル変数は、基本型変数であろうと参照型変数であろうと、それぞれのメソッド スタック領域に格納されますが、参照型変数によって参照されるオブジェクト (配列、通常の変数を含む) はスタック メモリに格納されます。 Java オブジェクト) は常にヒープ メモリに格納されます。
3. 参照変数がスタック メモリ内の変数そのものになるのはどのような場合でしょうか。また、参照変数がインスタンスを参照する Java オブジェクトになるのはどのような場合ですか?
参照変数は、本質的には単なるポインターです。プログラムが参照変数を介してプロパティにアクセスするか、参照変数を介してメソッドを呼び出す限り、参照変数は参照するオブジェクトに置き換えられます。
2. コード例
配列を回転する:
例: 配列内の要素は 123456 で、反転後は 561234 になります。
長さ n の配列を指定すると、最後の k 要素を前に移動し、最初の nk 要素を後ろに移動する必要があります。
//まず、インタビューの質問 1 のメソッドを改善し、最初から最後までの反転を i から j への反転に変更します public int[] changeArray2(int[] array, int i, int j) { int temp = 0; while (i < j) { 一時 = 配列[i]; 配列[i] = 配列[j]; 配列[j] = 温度; i++; j--; } //配列の回転は次の方法で実現できます。 //1. 前半を反転 2. 後半を反転 3. 配列全体を反転 public int[] swap(int[] array, int k) { int n = array.length - 1;// n=5 ChangeArray2(配列, 0, n - k); ChangeArray2(配列, n - k + 1, n); ChangeArray2(配列, 0, n); 配列を返します。 } }
上記は、Java 配列での面接の質問の表示です。配列を復習するときは、最も基本的な知識構造を明確に理解する必要があります。同時に、復習するときにいくつかの簡単なテストのポイントを考慮する必要があります。