いくつかのJavaインタビューの質問がインタビューされています。今日は、これらのインタビューの質問に対する回答を整理します。
あなたの仕事の経験を紹介し、最近のプロジェクトを紹介します。主に何を担当していますか?
実務経験については、簡単な紹介をして、約3分間コントロールしてくださいこれが始まりで、やっぱり履歴書に書いてあります。プロジェクトの紹介は人によって異なります。背の高いプロジェクトを行った場合は、1つずつ言ってください。プロジェクトが比較的単純な場合は、事前に準備して、ハイライトのいくつかを見つけ、アイデアを整理し、この質問への回答方法を事前に準備します。あなたが主に担当していることについては、プロジェクトに責任があるいくつかの事柄、できればいくつかの中核的な事柄について言及するのが最善です。
MySQLのチューニングを行いましたか、その方法
このトピックは、あなた自身の経験のいくつかに関連しています。これは大きく2つの方向に分かれます。1つは、MySQLサーバーの方向のチューニングです。これには、MySQLサーバーのメモリ、CPU、IOなどを監視することによるチューニングと、MySQLのいくつかの構成チューニングが含まれます。詳しい説明はしませんが、Googleにアクセスして学習できます。
もう1つの方向は、SQLチューニングです。これには、低速のクエリログの分析、実行プランの表示(説明)、インデックスの最適化(主キーインデックス、一意のインデックス、結合インデックスなど)、および必要なフィールドのみを選択するためのクエリ(インデックスが最もカバーできる場合)があります。 OK)待って。
MySQLインデックスとは何ですか?また、どのような状況でインデックスに登録されませんか?
主キーインデックス、一意のインデックス、通常のインデックス、結合インデックス(左端のプレフィックスの原則を含む)、フルテキストインデックス。
インデックスの失敗は主に次の状況で発生します。
1.クエリ条件にはorが含まれます。orクエリの左と右のフィールドにインデックスが1つしかない場合、インデックスは無効になります。orインデックスの左と右の両方のフィールドにインデックスがある場合、それらは有効になります。
2. Likeは%で始まり、インデックスに移動しません
3.結合インデックスは最初の列インデックスを使用しないため、インデックスは無効になります
4.インデックスが無効になる場所のフィールドに関数を使用すると
5. MySQLがテーブル全体のスキャン速度を分析する場合、インデックスの速度よりも高速で、テーブル全体のスキャンを使用します。インデックスは無効です。
MySQLがB +ツリーを選択する理由、ハッシュインデックスとの違い
MySQLの消費量は主にioであるため、ioの数が少ないほど良く、ツリーの高さはioの数を表すので、ツリーの高さが低いほど良いです。B +ツリーの非リーフノードはキー値に対応するデータを保存しないため、B +ツリーの各ノードが保存できるキー値が大幅に増加するため、ツリーの高さが低くなります。一方、すべてのキーワードデータはリーフノードに存在するため、各検索の回数は同じで、クエリ速度はより安定していますが、B +ツリーのリーフノードは後続のノードに接続されているため、範囲検索に非常に役立ちます。
次の理由により、ハッシュインデックスはMySQLには適していません。1。ハッシュインデックスは特別な構造を持っているため、クエリの効率は特に高くなりますが、範囲検索を使用できないため、致命的です。ハッシュ衝突の問題があります。
MySQLトランザクション分離レベルとは
1.コミットされていない読み取り
2.読み取りが送信されました(ダーティーリーディングは避けてください)
3.反復可能な読み取り(反復不可能な読み取りは避けてください)
4.シリアライゼーション(最高レベル、低パフォーマンス、通常は使用されません)
上記は4つの分離レベルです。デフォルトでは、一般的なデータベースを繰り返し読み取ることができます。より詳細なコンテンツ、およびスナップショットの読み取りとMVCCの概念についてグーグルできます。
Java 8の新機能
1.ラムダ式
2.ストリーミング操作
3.関数インターフェースとインターフェースでサポートされるデフォルトのメソッド
4.時間ツール、LocalDateTime、LocalDateなど
5、オプション
6.最適化されたHashMap、ConcurrentHashMap
7.永続的な世代がjvmから削除され、MetaSpaceに変更されました
ガベージコレクションアルゴリズムとは
1.マークの除去(がれきの問題があります)
2.コピーアルゴリズム(若い世代に適用、メモリスペースの浪費がある)
3.マーキングと仕上げ(効率は低下します)
4.世代別コレクション(若い世代(存続オブジェクトが少ない、レプリケーションアルゴリズムを使用)、古い世代(存続オブジェクトが多い、マーク削除またはマークソートを使用))
ReentrantLockの実装メカニズム
ReentrantLockの実装メカニズムは、ソースコードを確認するのに最適です。一般的なメソッドはロックとロック解除です。コアロジックのほとんどはAQSにあります。以前に書いた記事にアクセスできます。
Java HashMapの構造、Java 8とJava 7の比較
HashMapは配列とリンクリストの構造です。赤と黒のツリーがJava8で導入され、容量を拡張するときにも最適化が行われます。前に書いたHashMapのソースコード分析にアクセスできます。
スレッドプールのパラメーターとその実装原理
このインタビューの質問は100%尋ねられます。ほんの数日前に、スレッドプールの関連知識を整理しました。参照してください。
JavaはそれらのものをJDKロック(ReentrantLock)でロックします
HashMapインタビュー、この記事を読んだ後は十分(上)
Javaスレッドプールはこの記事を読むのに十分です、インタビューはもはや恐れていません
これらの面接の質問に対する回答がかなり整理されているとは思っていなかったので、前半を先に整理し、後半を夜に整理しました。バグを書く時が来たら、誰もが仕事に行くべきです。