Javaのインタビューの概要 - 基本1

  1. マルチスレッドのJava - スピンロック、ロックバイアス

    利点:あなたは、コントラストサーブレットとCGI与えることができます
    Javaの中にデーモンスレッドを作成するにはどのようにJVMが終了します後にユーザスレッドは、デーモンスレッドが(例えば、ガベージコレクションのスレッドとして)に終了します、:ユーザスレッドとデーモンスレッド間の差異を
    作成する方法:推奨Runnableをインタフェース;継承スレッド、呼び出し可能(将来の非同期と組み合わせて使用し、戻り値、)例の
    ライフサイクル:新しい、Runnableを、実行中、待機中 、ブロックされた(参加方法を)、デッド(下記参照)
    の優先順位:OSスレッドへの依存度スケジューラ、それらの符号の最良制御
    コンテキスト切り替え(コンテキストスイッチ):戻りCPUの状態とメモリ
    メインスレッドの最終的な終了を保証する:方法参加
    スレッド間通信を:待機、NOTIFY、(主にスレッドロック制御の間)のnotifyAll
    スレッド方法:あなただけのスレッドを実行して行うことができるので、睡眠や収量は、静的です


    スレッドセーフ

    原子クラス、ロック、並行性、揮発性のキーワード:スレッドの安全性を保証するためにどのように参照リンク
    シンクブロックとの同期方法を:シンクブロック、ロック少ない傾向
    にThreadLocalは:同期グローバル変数のメカニズムを使用した場合のトラブルの多くを望んでいないが、あなたが使用することができます
    :デッドロックの調査方法を(リソースIDをロックされたスレッドをブロックされた)、Javaスレッドダンプ
    避けるのデッドロック:必要な場所だけ待機無期限避けるために、使用されるロック回避ネストされたロック、
    アトミック操作:回避のデータの矛盾(とのAtomicIntegerの他のタイプの)複数のスレッドを、 int型++ではない原子
    のロックインターフェイスの
    コレクションクラス:(高速フェイルされConcurrentModificationExceptionが)、などが挙げられるが、マルチスレッドのConcurrentMapで使用することができます

    スレッドプール

    利点:避けるにはメモリが不足して、使用して回収することができる
    の作成方法:エグゼキュー
    キューをブロックする:スレッドセーフでは、のために使用することができる-消費者のプロデューサー問題
  2. 春ブーツ - AOP、IOC原則

    IOC:制御の反転、注射または依存を呼び出す
    IOCの春:コンテナによって制御さ作成オブジェクトは、破壊される
    原理:反射
    利点を:結合を低減、維持が容易
    AOP:アスペクトIOCに基づいてOrientiedプログラミングは、
    特徴:など、ロギング、権限チェック、トランザクション管理などの特定のサービスの独立
    の原則:動的プロキシ、静的注入(移植後コンパイル)が
    春を達成するために:JDKのダイナミックプロキシ(のInvocationHandlerとプロキシクラス)、CGLIBエージェント

  3. 春ブーツ - ロジックがして完全に正しい想定されるが、結果が正しくないJPAの、あれば、それはどのように調査プロセスでなければなりません

    構成:spring.jpa.show-SQL
  4. MyBatisの熟知

    MyBatisの一般的な知識
  5. 一般的に使用されるデザインパターンを作業

    作成タイプ:シングルトン、工場、抽象工場、Builderの
    構造の種類:アダプタ、コンバイナ、薬剤は、デコレータ
    の動作を:訪問者、視聴者、戦略

     

  6. mysqlの - 百万のレベルのデータを解決する方法、クエリが遅いです

    キャッシュ
    クエリの最適化(インデックスは、全表スキャンを避けるために):注インデックスは、いくつかの例を失敗したことを
    データベースクラスタ(マスター/スレーブ)、データベーステーブルのハッシュ、ロード・バランシング

     

  7. お馴染みのRedisデータベースの度合い

    説明:Redisのは、オープンソース(BSDライセンス)、データベース、キャッシュおよびメッセージングミドルウェアとして使用することができるメモリ・システムに格納されたデータ構造です。
    利点:スピード、データの多くの種類をサポートし、サポートサービス、有効期限の設定は、
    データ型をサポート:文字列、ハッシュ、リスト、セット 、ZSET
    永続的な方法:RDBとAOF(下記参照)
    注:マスター最高ではない書き込みのスナップショット(メインスレッドをブロックする)およびAOF
    その他:Redisのキュー制御シリアルアクセスと、シングルスレッドプロセスであります

    共通コマンド

    Redisの-CLI -hホスト-pポート-aのパスワード(ローカルパラメータなし)クライアントを起動するため
    のpingの:チェックサービスをRedisのは(ポンを返す)が開始され
    終了します。閉じるコネクタ
    を選択XX:指定されたデータベースへの切り替え

    キーなどのキーパターン(*キーを検索)
    キーが存在する:キーが存在するかどうか
    の鍵秒(タイムスタンプ)をEXPIRE:キー有効期限設定
    PEXPIREキーミリ秒:ミリ秒単位の無効化
    セット
    SETNX:キーがすでに存在する場合は、0が返されます
    ...

    キャッシュキャッシュの浸透と雪崩

    浸透キャッシュ 
    一般的なキャッシュシステムを、それが対応する値が存在しない場合、彼らは(例えばDBなど)のバックエンドシステムを見つけるために行く必要があり、キャッシュクエリにキーに従ったものです。いくつかの故意の悪質なリクエストクエリのキーが存在しない、要求の大規模な量は、それがバックエンドシステムに多くの圧力の原因となります。
    これは、浸透をキャッシュと呼ばれています。 避けるためにどのように?
    1 :ヌルクエリ結果はまた、キャッシングと短く設定、またはデータキーが挿入した後、ダーティキャッシュに対応する場合です。 2 :濾過特定のキーに存在しません。私たちは、ビットマップフィルタクエリによって大きなビットマップにすべての可能なキーを置くことができます。雪崩キャッシュ キャッシュサーバの再起動やキャッシュの大多数が失敗する1つの期間に集中したときに、その失敗、バックエンドシステムは、多くの圧力をもたらすとき。システムがクラッシュします。 避けるためにどのように? 1 :キャッシュミスした後、スレッドまたはキューデータベース読み取り書き込みキャッシュの数を制御するためにロックすることもできます。例えば、1つのスレッドのみのデータと書き込みキャッシュを照会することを可能にするためのキー、他のスレッドが待機します。 2 :二次キャッシュ、キャッシュA1が失敗したA2のコピーがキャッシュされ、元のA1、、、A2へのアクセス、A1キャッシュの有効期限が短期的、A2は、長期的に設定されている設定されていることを確認 3のために有効期限を設定する別の異なるキーを、:できるだけ均一なキャッシュ無効化の時点。

      

  8. 比較RDBおよびAOF
    。1 、好ましくは、データを復元するために使用AOF、RDBよりも高いファイルの更新頻度AOF。
    2 、RDBよりも安全のAOFは大きい
     3 RDB性能良好のAOFより、
     4の両方が、優先AOFがロードされた場合、

    RESP契約

    RESPはRedisのクライアントとサーバの前に使用される通信プロトコルであり、
    RESPの特徴:シンプル、高速な解析と読める
    最初は単純な文字列のバイトで返信のはIS  + 返信
    ファーストでのエラーのためにバイトので返信IS  - エラー
    最初は整数のバイトで返信のIS  整数
    まずバルクの文字列のバイトで返信のIS  $ の文字列
    ファーストでの配列のためにバイトで返信のIS  * 配列

    アーキテクチャタイプ

    1 シングル
     2マスタコピーから:圧力の読みを減らすが、可用性解決できない
    3.センチネル(センチネル):高可用性を保証するために、自動フェイルオーバーを
    4クラスタ(twemproxy)
    5.クラスタ(ストレート型)

     

  9. データベースMongoDBの精通度
  10. Linuxの習熟
  11. ドッキングウィンドウ - コンテナ原理 



参考:

スレッド:https://www.cnblogs.com/dolphin0520/p/3932934.html

IOC:https://www.cnblogs.com/cyhzzu/p/6644981.html

AOP:https://www.cnblogs.com/lcngu/p/5339555.html

デザインパターン:https://www.cnblogs.com/jianzhixuan/p/9882756.html

MySQLのクエリの最適化:
    https://www.cnblogs.com/simadongyang/p/8205607.html

    https://www.cnblogs.com/fnlingnzb-learner/p/9939752.html

Redisの:

    https://www.w3cschool.cn/redis/redis-ydwp2ozz.html

    https://www.cnblogs.com/jasontec/p/9699242.html

おすすめ

転載: www.cnblogs.com/roostinghawk/p/11963610.html