分散JVM + +アルゴリズム+ロック+ MQ +サービス+マイクロデータベースのインタビューの質問

JAVAの基礎

各職業のバイトどのように多くのJAVAがあるいくつかの基本的なデータ型は何1、

Javaの基本データ型8種:

  

用語集:

 ビット:ビット、記憶装置の最小単位、二進数のビット数。

 バイト:バイト、記憶装置の基本単位は、バイトが8ビットの2進数で構成されています。通常の文字は2バイトです。

2、Stringクラスには、なぜそれを継承する、とすることができます。

 

Stringクラスは、最終的な修飾子を持っているので、最終的な修正クラスは継承できませんしながら、いや、、、実装の詳細を変更することはできません。

次のようにfinal修飾子について、説明:

プログラムコンテキストによると、Javaは「それは変更することができません」またはそれは非抽象クラス、非抽象クラスのメンバメソッドと変数を変更することができることを意味「最終状態」の最後のキーワード。デザインや効率:次の2人の理解の変更のために停止する必要があるかもしれません。 
  最終的なクラスには、何のサブクラスを継承することはできません、デフォルトクラス最終メソッドは、最終あります。 
  最終的な方法は、サブクラスでメソッドをオーバーライドすることはできませんが、継承することができます。 
  最後のメンバ変数は定数を表し、割り当てられた値が変化しないの後、一度だけ割り当てられることができます。 
  この方法は、最終的な建設を変更するために使用することはできません。 
  注:スーパークラスのメソッドの民間メンバーは、メソッドのプライベートタイプがデフォルトの最終型であるので、カバーキルトができないクラスメソッドです。

クラスはサブクラスのメソッドを上書きすることが許可されていない場合は、この方法では、最終的なアプローチを宣言することができます。 
  :最終的アプローチの使用のための2つの理由があります 
  まず、その意味や実装を変更するために、任意の継承クラスを防止するためのロック方法が。 
  第二に、効率的な。それは非常に効率を向上させる、機構に組み込まれ、最終的なメソッドを呼び出すときにコンパイラが遭遇します。

 

 3違い、文字列、StringBufferのは、StringBuilderのです。

 4、ArrayListのとLinkedListの違いは何ですか

 

 5、こうした親クラスの静的データコンストラクタ、フィールド、サブクラスの静的データコンストラクタ、フィールド、時間の新しい、その実行順序などのトーク順序クラスの例は、

 

マップクラスを使用し6は、違いは何だ、HashMapのは、どのような同時地図の使用であることであり、彼らがそのようなストレージ、ハッシュコード、拡張、デフォルトの容量などの内部原則、何をしている、あなたのためのスレッドセーフです。

 

7、ConcurrentHashMapの理由のJAVA8は、問題が何であるか、サブロックを放棄し、あなたがデザインに来た場合、どのように設計します。

 

図8は、いかなるシーケンシャルMap実装クラスが存在しない、もしそうなら、どのように彼らが注文されていることを確認します。

 

9、抽象クラスとインタフェースの違いは、複数のクラス、インタフェースを継承することができるもののクラス、複数のインタフェースは、それを継承することができ、どのようなクラスは複数のインタフェースを実装することができます。

 

10、継承と重合との間の差。

 

11、IOモデル、彼とバイオとの違いの理解についてNIO話、AIOは、原子炉のモデルについての話に有効です。

 

 クラスインスタンスはいを作成するにはどのような三つの方法を反映して12、反射の原理、。

 

13、反射、及びClass.forNameのクラスローダ差。

 

図14は、動的プロキシいくつかの実装で、それぞれ対応する発話の欠点を記載しています。

 

15、動的剤との区別を達成CGLIB。

 

16.なぜCGLIBの方法はインタフェースのプロキシを実装します。

 

17、最終使用。

 

単一の実施形態を達成するために書き込みモードの18、三種類。

 

親クラスのサブクラスで自動的にすべてのハッシュコードを完了し、達成するために等しいか19、?何が長所と短所を行います。

 

20は、オブジェクト指向設計、保護されたアクセス修飾子の公共、民間の役割、アプリケーション設計のデフォルトについての話と合わせてください。

 

21、深い浅いコピーのコピーの区別。

 

22、およびリンクされたリストデータ構造のアレイは、各時間の複雑さを説明しました。

 

23、エラー、例外、CheckedException差、のRuntimeExceptionの差。実行時例外5を記入してください。

 

あなたのコードでは24、あなたはクラスローダ場合にロードすることができjava.lang.Stringクラスを作成する場合は?なぜ。

 

25、java.lang.ObjectのオブジェクトのhashCodeのご理解についての話や方法に等しいです。何の下のシナリオでは、これら2つのメソッドを実装する必要があります。

 

26は、JDK1.5に、ジェネリック医薬品の導入は、ジェネリックの存在は、問題を解決するために使用されます。

 

27、そのa.hashcodeの使用何、a.equals(B)とは何かを持っています。2つの等しくないオブジェクトが同じハッシュコードを持つがあるかもしれません。

 

それがどのように動作するかのJavaのHashSetの内部で28、。

 

シリアライズ、解決する方法を、どのように、なぜシリアライズ、デシリアライズ出会いも問題連載で何29。

 

30、新機能のjava8。

 

JVMの知識

状況スタックメモリのオーバーフローが発生するものの下で1

 

図2に示すように、JVMのメモリ構造、エデンとサバイバー比。

 

3、なぜ新世代、古い時代の、永続的な世代へのJVMメモリ。なぜエデンとサバイバーへの新世代。

 

4、JVMフルGCプロセスの古い時代に昇格オブジェクトは、あなたが知っているか、のような、いくつかの主要なJVMパラメータについての話。

 

5.あなたはどのようなガベージコレクタの種類、彼らの長所と短所、および原則、プロセス、長所と短所を含め、下のCMS G1の一部をハイライト表示を知っていますか。

 

6、ガベージコレクションのアルゴリズムの原理を実現しています。

 

7、メモリオーバーフローがある場合に、どのようにデバッグするのです。

 

 8、どのくらいのメモリなどを取り組んで、起こる-前に、など、メモリバリアを並べ替えて、メインメモリを理解するためのJVMのメモリ・モデルの知識。

 

9、単にクラスローダのご理解の話は破るためにどのように、両親を破るためにそれを委任することができます。

 

10、JAVAの反射についての話。

 

11、G1およびCMS差、優先順位のスループットおよび選択優先ガベージコレクタに対応します。

 

12、スレッドスタック情報を再生する方法について説明します。

 

13.次のJVM引数の意味を説明してください:

-server -Xms512m -Xmx512m -Xss1024K

-XX:PermSizeを= 256メートル-XX:MaxPermSizeを= 512メートル -

XX:MaxTenuringThreshold = 20XX:CMSInitiatingOccupancyFraction = 80 -

XX:+ UseCMSInitiatingOccupancyOnly。

 

 知識のためのオープンソースのフレームワーク

1は、単にスレッドモデル、Tomcatの構造だけでなく、そのクラスローダプロセスについて話しています。

 

2、どのようなパラメータが関与チューン、ようにTomcat。

 

3、春のロード処理についての話。

 

4.春AOPの原則。

 

5、伝播特性春のトランザクションについての話。

 

6、春どのように業務を管理します。

 

7、トランザクションを設定するには、春の方法(特にXMLの重要な要素のいくつかを言います)。

 

8、春、非シングルトン注入原理の理解についての話?そのライフサイクル?ループ注入原理、AOPの実装の原則、彼らはお互いにどのように動作するかという点でいくつかのAOPの話。

 

図9に示すように、初期化処理においてSpringmvcのDispatcherServlet。

 

10、どのようにネッティー原子炉モデルの実装に基づいて網状のスレッドモデル、。

 

11.なぜネッティー。

 

12.開梱TCPスティックパッケージは、どのようなものです。それは解決方法は何ですか。

 

13、解決する方法、通話に十分な時間があったかどうかfashwheeltimerの使用、実装の原則、の網状。

 

弱いネットで行う方法14、ネッティーハートビートプロセス。

 

15、網状の通信プロトコルが何です。

 

16、springmvcは、原則としての役割が何であるか、ノートを使用しました。

 

17、メカニズムを起動しspringboot。

 

オペレーティングシステム

1、あなたが知っている話に、パラメータをカーネル何を懸念Linuxシステム。

 

2は、IOでのLinuxモデルは、どのような彼らの意味はい、いくつかあります。

 

3、ファイルディスクリプタと投票違いは何ですか。

 

通常のLinuxコマンドを使用して4、。

 

5、コマンドラインでファイルの最後の5行を参照してください。

 

図6は、出力javaプロセスは、1つのコマンドで実行されています。

 

7は、オペレーティングシステムは、ハンドオーバ処理のご理解をスレッド化するために導入されました。

 

図8に示すように、プロセスとスレッドとの間の差。

 

図9は、トップ注文後どのような、どのような役割を持っています。

 

10、オンライン高いCPUを使用すると、問題を見つける方法を、バースト。

 

マルチスレッド

1、複数のマルチスレッド実装は、スレッドセーフものです。

 

2、揮発性の原則、効果は、あなたが所定の位置にロックすることができます。

 

3、ライフサイクル状態図のスレッドを描きます。

 

4、睡眠と待ち時間の違い。

 

5区別、睡眠と睡眠(0)です。

 

6、ロックと同期の違い。

 

一般的に、任意の場所で使用されている同期何原則7.(静的メソッドと非静的メソッドに追加の時間差、静的メソッドと同時に実行非静的メソッドとして、それに影響を与える)、次の用語を説明します。並べ替えを、自己スピンロック、ロックバイアス、軽量ロック、リエントラントロック、ロック公正、不公平ロック、楽観的ロック、悲観的ロック。

 

原子クラスは使用8、どのような彼らの原則はい。

 

9、JUCは、並行処理ユーティリティの下原則についての話を研究しました。

 

10は、スレッドプールを使用し、使用した場合、原則との違いは何newCacheとnewFixedについての話を説明してください、各パラメータのコンストラクタの意味は、このようなcoreSize、MAXSIZEというように何です。

 

11、いくつかの方法がありますシャットスレッドプールの下、どのような各そうとの違い。

 

サードパーティのインターフェースがある場合12は、多数のスレッドが同時にそれを行う方法、それを呼び出す今まで規制スレッドあたり10に、データを取得するために呼び出すことがあります。

 

13、スプリングコントローラは、同時実行の安全性を確保する方法を、単一のケース又は複数のケースです。

 

14、三文字ABC印刷サイクル、例えばABCABCABCの配列を有する3つのスレッド。

 

15、ThreadLocalのは、それを使用して、どのような目的のために原則は注意を払うために時間を使うか、何をです。

 

16、あなたは安全な同時リストを実装する場合、あなたはどのように行うだろうと。

 

17、ロックフリーのデータ構造、彼らが達成何の原則。

18、待ち時間の話とJava同期メカニズムを通知します。

19.何CASメカニズム、どのように問題を解決するためにABA。

スレッドが行う方法に巻き込ま場合20は、マルチスレッド。

21、countdowlatchとCyclicBarrierを内部原理および使用、ならびに互いの間の差異(例えばたCountDownLatchの方法を待って、どのように達成します)。

22は、AbstractQueuedSynchronizer約、ロックとアンロックプロセス、公平性と排他ロックロックについての話何が違うのを知っています。

23、同期静的メソッドとの差を修正する非静的メソッド使用。

24、そして簡単にConcurrentLinkedQueue LinkedBlockingQueueの有用性と相違点。

25、原因スレッドのデッドロック?スレッドのデッドロックを解除する方法。

26ので、複数のスレッド(おそらく異なるマシン)、あなたはどのような連携プログラムの設計を依頼し、いくつかの作業を完了するために、それらの間の調整を待つ必要があります。

27、読み、原理は一般的にどのようなシナリオの下で、あるものをその上に書き込みロック、ために使用されます。

28、オープン複数のスレッド、もしいくつかの実装を持っている、または複数のスレッドが、結果を得る実行されていることを確認する方法を保証実行順序、。

29、類似度と遅延キューの実装の違い、及びタイミングホイールDelayQueueアルゴリズム。

 

TCP与HTTP

1、HTTP1.0とHTTP1.1の違いは何ですか。

二回しか握手をする場合は4回まで切断は、何が表示される理由は2、TCP 3ウェイハンドシェイクと4は、プロセスを振っ。

3、TIME_WAITとCLOSE_WAIT差。

4、あなたは、このような200、302、404など、いくつかのHTTPレスポンスを、知っている話。

5、あなたは(のような//www.javastack.cn:HTTP)ブラウザでリンクを開くと、コンピュータがどのような作業手順を実行するとき。

、TCPヘッダの構造についての話を、信頼性を確保するためにどのように6、TCP / IP。

7、どのようにブラウザのキャッシュを避けるために。

8、どのようにHTTPプロトコルのステートレスな性質を理解します。

9、簡単にHTTPのGETとPOSTリクエストとパケットフォーマットの違い。

10、HTTPれる方法

11、簡単にHTTPリクエストメッセージフォーマット。

12、長いHTTP接続は、それが何を意味するのかであります

13. HTTPS暗号化、全体の暗号化と復号化のプロセスについての話は何ですか。

14、HTTPとHTTPSの三方の違いは何ですか握手。

15は、ブロック転送するものです。

16違い、セッションとクッキー。

 

分散型アーキテクチャと設計

1、自分自身のJavaでLRUを達成。

2、分散型クラスタ固有のシリアルナンバーを行う方法。

図3は、トランザクションを自動的に閉じます入金せずに30分間スパイクシステムを設計します。

4、どのように飼育係のRedisを使用して、分散ロックを実装するには?シナリオが適用されているものを、問題がどうなるか、差長所と短所は何ですか。(拡張子:論争彼のアルゴリズムについてあなたがredlockを知っていれば、の話)

5、誰かが悪意を持って解決する方法を、違法な接続を作成する場合。

6、原則分散トランザクション、長所と短所、どのように分散トランザクションを使用するには、2PCの違いはどのような問題を解決する3PC、どのような問題は、分散トランザクションで独自のプロジェクトを解決する方法、解決されていないことに対処する方法に関連しています。

7.ハッシュの一貫性とは何ですか。

8、ご理解に関する安らかな、安らかな話は何ですか。

9、どのように良いのAPIを設計します。

10、ビルドを設計し、100ワットの長い接続を維持する方法について説明します。

11、どのようなMESIプロトコル(キャッシュ・コヒーレンシ)を説明。

12は、いくつかのハッシュアルゴリズムについての話に、あなたが知っている、シンプルにすることができます。

13は、Paxosアルゴリズムが何であるか、ZAB合意するものです。

14、オンラインドキュメントシステム、文書が更新されるために、同じ文書を編集するために、複数の人を防ぐ方法、編集することができます。

15、オンラインシステムが突然、あなたが問題を見つけるのですか、非常に遅くなりました。

16、あなたは通常使用されるデザインパターンについて話しています。

17、ダボの原則、およびクラスタリングを達成するためにどのようにデータの転送、負荷分散、サービス登録と発見、再試行の転送、フェイルファスト戦略が似ているどのようにどのようなソースを、見てきました。

18どのようなRPC要求処理はい。それを達成するために自分自身を経由したRPCは、単に原則について話すことができます。RPCはすべての問題を解決します。

19、用途や意義非同期モード。

20は、そのような開口部として、いくつかの設計原理を検討する方法を自分自身をプログラミングし、職場での原則とアプリケーションを閉じます

21、チャットサーバアーキテクチャの下で解決する方法を、問題の発生した話をし、設計や図面に携わってきました

22、どのようにアプリケーションサーバのパフォーマンスの違い、さまざまな方法を監視します

23、高同時決済スキームを設計する方法を、どのようなアーキテクチャを設計します

24、どのように実装することができ、負荷分散アルゴリズムを達成するために

25、飼育係の使用は、選挙の原則ものです

26、原則として飼育係の時計のメカニズム。

26、MyBatisの基礎をなす原則の実装。

27、たCountDownLatch分散環境を実現するためのプログラムを考えます

要求を再送信する方法バックオフィスシステムを防ぐために28、

29、サービスからのプロセスが消費に公開されて詳細に説明

30、サービス管理のご理解の話

インタフェース冪等を行うための方法31、

32.トークンバケットとファンネルアルゴリズムのシーンを使用して電流制限の戦略を実行する方法

33、どのようにデータの一貫性を理解して、データの一貫性ものです。

34は、サービスへの発信者を分散し、サービスプロバイダに依存しない、そして、サービス側がハングアップに対処する方法、リソースの無効廃棄物の多くは、サービスが、その後、ハングアップした場合、サービスプロバイダは、それを行う方法の高スループットでない場合にのみ、時間を要求しました再起動のため、最小限のリソースの浪費、どのような流量ハーフオープンメカニズムの実現を行う方法はい。

それはあなたであれば、汎化コールダボを達成するためにどのように35、あなたはどのように行うのでしょう。

エレガントな制御を行うため、JDKは達成するためにどのように、メカニズムを出てきた場合に36、、リモート呼び出しのタイムアウトが発生します。

 

アルゴリズム

で1,10億の数字は10の最小値を検索します。

2は、2が重複しているうち億の数字は、時間と空間が最適であることが、すぐにそれを見つけ、そこにあります。

中間の大きさの値を見つけるために3,2億ランダムに生成された整数障害、。

図4は、(潜在的に大きな)に入力された文字列、制度設計、重い重複文字配列の長さを知りません。

5、バイナリツリートラバーサル。

6、3Nが繰り返されるの3N + 1桁が、ありますが、一つだけは見つけるために、どのように繰り返されていません。

(:www.javastack.cnなど)逆関数7は、文字列を書き込みます。

8、共通ソートアルゴリズム、速い放電、マージ、バブリング。高速行最適な時間の複雑さ、最悪の複雑さ。バブルソートの最適化。

9、二分探索時間の複雑さの利点。

10は、逆の順序を完了するために、どのように、良いTreeSetのを構築しました。

11、B +木、B-木、リストの実際の使用シナリオは何ですか。

12、単独リンクリスト、最後から二番目のNのデータを削除します。

13,200順序付けられたアレイは、各アレイ素子100は、素子TOP20を識別する。

14は、一方向には、真ん中の要素のための外観をリンクリスト。

 

ナレッジ・データベース

1、その意味が何であるか、MYSQLのデフォルトの分離レベルは、それが何であるかが何であるか、データベースの分離レベル。

2.ファントム読み取りどのようなものです。

3、MySQLストレージエンジン、自分の長所と短所。

図4は、高い同時実行の下で、どのように安全にデータの同じ行を変更することができません。

5.楽観と悲観的ロックロックどのようなものですが、その意味を説明するために、2種類のINNODB標準行レベルロックです。

6.各フィールドの意味を理解する方法、実行計画を確認する方法、SQLの最適化のための一般的な手順は何ですか。

7、データベースのデッドロックは、デッドロックを解決するためにどのようにMySQLをデッドロックの例を与えます。

8、インデックスの作品のMYSQL、合理的なインデックスを作成する方法をどのような指標の種類、どのように最適化するための指標。

図9に示すように、インデックスと集計非クラスタ化インデックスとの差。

図10は、更新のために選択することは意味が表または行ロックまたは他のロックになるものです。

スプリットに、なぜがバランスされたときに11、なぜBツリーは、それが分割されたか、達成しなければなりません。

12.どのようなACIDデータベースはい。

図13に示すように、テーブルは、最適化する方法、CRUD遅い、ほぼ千万データを有しています。

14、MySQLはどのようにテーブルスキャンを最適化します。

15、どのようにSQLを記述することは効果的に複合インデックスを使用することができます。

16、MySQLとの差に存在します。

17、データベースの自動インクリメントの主キー可能性のある問題。

18、MVCCは、どのように達成するか、という意味します。

19、あなたが行う方法を、サブライブラリーサブテーブルの出会いでのプロジェクトを行っていましたが、それはどのような彼らの原則を知っている、など、JDBCをシャーディングとして、ミドルウェアに便利です。

20、遅延を解決するためにどのようにMYSQLマスター。

 

メッセージキュー

1、メッセージキューを使用したシーン。

2、メッセージの再送信、補足ポリシー。

3、整然としたメッセージを確保する方法について説明します。

MQを使用し4、および他のMQがどのような長所と短所を比較し、MQ接続はあなたのためのスレッドセーフで、どのような会社のMQサービスアーキテクチャです。

データはMQシステムを失っていないことを確認する方法5、。

6、高可用性クラスタを実現する方法のRabbitMQ。

7、カフカハイスループットの理由。

8、および他の差カフカのメッセージキュー、プライマリ同期カフカを達成するためにどのようから。

9、最終的な一貫性を達成するためにどのようにMQを使用します。

10、使用してカフカ何の問題も発生していない、どのように解決します。

11は、MQは消費が発生する可能性があり、回避する方法、どのように冪等を行うことを繰り返しました。

12、あなたは、あなたが通常の対処方法有効期限を有効期限を設定することができるもののメッセージに対処する方法MQメッセージの待ち時間。

 

キャッシュ

設計する方法1.(などのRedisなど)キャッシング行う方法を、一般的なキャッシュ戦略は何であり、あなたは、プロジェクト・キャッシング・システムで使用されるどのようなDBのデータの一貫性、

2、キャッシングやアバランシェ破壊を防止する方法について説明します。

キャッシュデータを更新する方法3は、デザインを期限切れ。

図4は、構造に関連する動作のリストのRedis。

5、Redisのデータ構造は何ですか。

6は、Redisのは、永続モード、アプリケーション、および長所と短所メモリの設定、クラスタ、アウト戦略について、何の話に注意を払うために使用されます。

図7に示すように、差分redis2とredis3、redis3内部通信機構。

8、現在はゲームがプレイされているクラスタ、各シーンの長所と短所をRedisの。

9、キャッシュ内のデータをフィットMemcacheの原理、。

10違い、Redisのとmemcachedのメモリ管理。

11は、同時競争の問題を解決するためのRedisか、理解Redisの取引CASはそれを動作させます。

12、Redisの選挙アルゴリズムおよびプロセスは次のようです。

図13は、永続化機構との間の差は、RedisのAOFとRDB。

14、データを同期する方法クラスタをRedisの

Redisの動作を最適化15が、知っています。

16は、レプリケーションメカニズムからの主な原則レイズ。

17、Redisのは、モデルはいスレッディング何。

18は、全体的な自動適応のローカル・キャッシュ・バッファのサイズを制御するために設計されたプログラムを検討してください。

19、キャッシュ(ローカルキャッシュ、集中キャッシュ)を使用し、ローカルキャッシュと集中キャッシュと長所と短所を概説を扱う方法について説明します。

20、同時に使用するローカルキャッシュ上のご注意。

 

検索

1、あなたの会社のESクラスタアーキテクチャについての話にインデックスデータサイズ、フラグメントの数だけでなく、いくつかのチューニング手段をどのくらい知っているelasticsearch

2.逆索引はいを何elasticsearch。

3、elasticsearchインデックスデータよりどのようにチューニングするために、展開を行う方法。

4、elasticsearchはマスター選挙を実現する方法であります

5、どのようなElasticsearchドキュメントのインデックス作成プロセスの詳細な説明

検索処理Elasticsearch約6、詳細な説明

7、導入時Elasticsearch、Linux用に設定した最適化手法?

8.何lucence内部構造はい。 

おすすめ

転載: www.cnblogs.com/hericwan/p/12635606.html