#Java 最新の基礎知識面接の質問
1. static キーワードは何を意味しますか? Java でプライベート メソッドまたは静的メソッドをオーバーライドすることはできますか?
"static" は、メンバー変数またはメンバー メソッドが、それが属するクラスのインスタンス変数なしでアクセスできることを示します。 Java の静的メソッドはオーバーライドできません。メソッドのオーバーライドは実行時の動的バインディングに基づいているのに対し、静的メソッドはコンパイル時に静的にバインドされるためです。静的メソッドはクラスのインスタンスに関連付けられません。 プライベート メソッドは Java ではオーバーライドできません。 private によって変更された変数とメソッドは現在のクラスでのみ使用できるため、他のクラスが現在のクラスを継承している場合、継承されたクラスではプライベート変数とメソッドにアクセスできません。環境内の静的アクセスの非静的変数で使用できますか?できません。静的変数はクラスに属します。クラスが仮想マシンによってロードされると、静的変数が初期化されます。非静的変数はインスタンスに属します。この時点では、インスタンスは作成されていないため、コンパイラはエラー
3 を報告します。Java の基本型、自動アンボックス化とは何ですか?基本型: byte、short、int、float、long、double、boolean、charAutoboxing: 基本型と対応するオブジェクト型をラップする Java コンパイラーです。それらの間の変換。たとえば、int を Integer などに変換します。それどころか、自動的にアンボックス化されます
4. Java メソッドのオーバーライドとメソッドのオーバーロードとは何を意味しますか?Java でのメソッドのオーバーロードは、同じクラス内に同じ名前でパラメータが異なる 2 つ以上のメソッドがある場合に発生します。メソッドのオーバーライドは、サブクラスが親クラスを再定義するためのメソッドです。メソッドのオーバーライドは、同じメソッド名、パラメータ リスト、戻り値の型を持つ必要があります
5. Java のコンストラクタとは何ですか?コンストラクターのオーバーロードとは何ですか?コピーコンストラクターとは何ですか?新しいオブジェクトが作成されると、コンストラクターが呼び出されます。各クラスにはコンストラクタがあります。クラスにコンストラクタが提供されていない場合、コンパイラはデフォルトのコンストラクタを自動的に作成します。Java でのコンストラクタ メソッドのオーバーロードは、メソッドのオーバーロードと非常に似ています。 1 つのクラスに対して複数のコンストラクターを作成でき、各コンストラクターには独自の一意のパラメーター リストが必要です
6. Java は多重継承をサポートしていますか? #########サポートしません。単一継承のみがサポートされています。つまり、クラスには親クラスが 1 つだけあります。実装を使用して、複数のインターフェイス拡張を実装できます。7. インターフェイスと抽象クラスの違い
1. インターフェイス内のすべてのメソッドは、暗黙的に抽象です。抽象クラスには、抽象メソッドと非抽象メソッドの両方を含めることができます2。インターフェイスで宣言された変数はデフォルトで Final ですが、抽象クラスには非 Final 変数を含めることができます3。関数はデフォルトでパブリックです。抽象クラスのメンバー関数は、プライベート、保護、またはパブリック#4にすることができます。クラスは、抽象クラスおよびインターフェイス宣言内のすべてのメソッドを実装する必要はありません。この場合、クラスも宣言する必要があります。 abstract
8. jdk と jre の違いは何ですか?Java ランタイム環境 (jre) は、実行される Java プログラムの Java 仮想マシンであり、アプレットの実行に必要なブラウザ プラグインも含まれています。 Java 開発キット (jdk) は、jre、コンパイラ、その他のツール (javadoc、java デバッガなど) を含む完全な Java ソフトウェア開発パッケージであり、開発者はこれを使用して Java アプリケーションを開発、コンパイル、実行できます
9. 値の転送と参照の転送とは何ですか?値の転送は基本型変数です。転送は変数のコピーです。コピーを変更しても元の変数には影響しません
参照による受け渡しは通常、オブジェクト型変数に対して行われます。渡されるのはオブジェクト アドレスのコピーです。コピーを変更すると元の変数に影響します
10. プロセスの違いは何ですかそしてスレッド?
プロセスは実行中のアプリケーションであり、スレッドはプロセス内の実行シーケンスです。プロセスは複数のスレッドを持つことができます
相違点:
1. アドレス空間とその他のリソース: プロセスは互いに独立しています。同じプロセスのスレッド間で共有されます。プロセス内のスレッドは他のプロセスには表示されません2。通信: プロセス間の IPC 通信。スレッドは、通信のためにプロセス データ セグメント (グローバル変数など) を直接読み書きできます。データの一貫性を確保するには、プロセスの同期と相互排除の支援が必要です。
3 。スケジューリングとスイッチング: スレッド間のコンテキストの切り替えは、プロセスのコンテキストの切り替えよりもはるかに高速です
4. マルチスレッド OS では、プロセスは実行可能なエンティティではありません
11. 同期メソッドとメソッドの違い同期されたコード ブロック同期されたメソッドは、デフォルトでこのクラス オブジェクトまたは現在のクラス オブジェクトをロックとして使用します
同期されたコード ブロックは、ロックする対象を選択できます。これは、同期されたコード ブロックよりも詳細です。メソッドの粒度。メソッド全体ではなく、同期の問題を引き起こすコードの一部のみを同期することを選択できます
12.デッドロック
デッドロックは、次の理由により複数のスレッドによって引き起こされます。リソースの競合。外部からの力がなければ、これらのスレッドのどれも先に進むことができない一種のデッドロック。デッドロックに必要な 4 つの条件
1. 相互排除条件
2. 非剥奪条件3. リクエスト アンド ホールド条件
4. ループ待機
13. デッドロックを引き起こすことなく N 個のスレッドが N 個のリソースにアクセスできるようにするにはどうすればよいでしょうか?
デッドロックを回避する非常に簡単な方法: ロックを取得する順序を指定し、スレッドが指定された順序でロックを取得するように強制します。したがって、すべてのスレッドが同じ順序でロックとロックの解放を行う場合、デッドロックは発生しません
14. Java コレクション クラス フレームワークの基本インターフェイスは何ですか?
Collection、Set、List、Map
15. HashMap の動作原理
hashMap は Key-Value の形式で保存されますペア。ハッシュマップには、ハッシュ関数が必要です。ハッシュ関数は、hashCode メソッドとquals メソッドを使用して、コレクションに要素を追加したりコレクションから要素を取得したりします。 put が呼び出されると、HashMap はキーのハッシュ値を計算し、コレクション内の適切なインデックスにキーと値のペアを格納します。キーがすでに存在する場合、値は新しい値に更新されます。 hashMap のいくつかの重要な機能は、その容量、負荷率、拡張制限です。
16. ハッシュコードと等価の重要性はどこに反映されますか?
ハッシュマップはハッシュコードと等価を渡します。キーと値のペアのインデックス
17、ハッシュマップとハッシュテーブルの違いは何ですか?
#ハッシュマップではキーと値を null にすることができますが、ハッシュテーブルではキーや値を null にすることはできませんハッシュテーブルの同期ですが、ハッシュマップはそうではありませんphp 中国語 Web サイト、多数の無料Java 入門チュートリアル 、オンライン学習へようこそ!
以上がJavaの最新基礎知識面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。