ゴールドスリーシルバーフォーインタビューでブラッシュする必要があるインタビューの質問(記事を読む必要があります)
片側
- 自己紹介
- プロジェクトでの監視:一般的な監視指標は何ですか?
- マイクロサービスに関連するテクノロジーと注意が必要な問題は何ですか?
- 登録センターについて何を知っていますか?
- 領事の信頼性を知っていますか?
- 領事の仕組みを深く掘り下げましたか?他の登録センターと比較しましたか?
- 多くのプロジェクトでSpringを使用していますが、Springの原則を理解していますか?AOPとIOCの原則
- 自動構成とは別に、Spring Bootと従来のSpringのその他の違いは何ですか?
- Spring Cloudについてどのくらい知っていますか?
- 春豆のライフサイクル
- HashMapとhashTableの違いは何ですか?
- Objectのhashcodeメソッドが書き直されました。equalsメソッドを変更する必要がありますか?
- ハッシュマップスレッドの安全でない発生シナリオ
- オンラインサービスのCPUが高い場合はどうすればよいですか?問題を見つけるための対策は何ですか
- JDKにはどのスレッドプールがありますか?ちなみに、スレッドプールについて話しました
- where句で!=または<>演算子を使用しないようにしてください。そうしないと、エンジンはインデックスの使用をあきらめて、テーブル全体のスキャンを実行します。
- SQLインデックスの順序、フィールドの順序
- SQLがインデックスを使用しているかどうかを確認しますか?(どのようなツールがありますか)
- TCPとUDPの違いは何ですか?TCPデータ送信中に信頼できる方法は?
- あなたが知っているソートアルゴリズムについて教えてください
- 配列の中央値を見つけますか?
両面
あなたが私に何か質問がありますか?(定期お問い合わせ)
- 自己紹介、実務経験、テクノロジースタック
- プロジェクトでどのようなテクニックを学びましたか?
- マイクロサービス部門の細かさ?
- マイクロサービスの高可用性を確保するにはどうすればよいですか?
- 負荷分散とリバースプロキシ、分離、電流制限、ダウングレード、タイムアウトと再試行、ロールバック、ストレステスト、緊急計画
- 一般的に使用されるロードバランシングの使用方法を教えてください。
(技術的な質問)
- httpリダイレクト
- DNS負荷分散
- リバースプロキシロードバランシング
- IPロードバランシング(LVS-NAT)
- 直接ルーティング(LVS-DR)
- IPトンネル(LVS-TUN)
- ゲートウェイはバックエンドサービスにどのようなメリットをもたらすことができますか?
- 春豆のライフサイクル
- xmlで構成されたinitおよびdestroyメソッドはどのようにして特定のメソッドを呼び出すことができますか?反射のメカニズム
- Objectクラスのメソッド
- オブジェクトの比較は同じですか
- ハッシュマップのputメソッドが重複しているかどうかを判断する方法
- Object toStringメソッドが一般的に使用されますが、なぜこのメソッドを書き直すのですか?
- セットとリストの違いは何ですか?
- ArrayListとLinkedListの違い
- 同じデータにアクセスする場合、ArrayListとLinkedListの間でどちらがより多くのスペースを占有しますか?
- セットが保存される順序はありますか?
- Setの一般的な実装は何ですか?
- TreeSetにはデータストレージに対してどのような要件がありますか?
- HashSetの基本的な実装はどうですか?
- TreeSetの基礎となるソースコードを見たことがありますか?
- HashSetスレッドは安全ですか?なぜスレッドセーフではないのですか?
- Javaのスレッドセーフマップとは何ですか?
- HashTableを知っていますか?
- スレッドの安全性の問題を確実にする方法は?
- 同期、ロック
- 揮発性の原子性?i ++がアトミック性をサポートしないのはなぜですか?コンピュータ原理設計の観点から、原子性が保証されない理由は原理の前に起こります
- cas操作
- ロックと同期の違いは何ですか?
- フェアロックとアンフェアロック
- Java読み取り/書き込みロック
- 読み取り/書き込みロックの設計は主にどのような問題を解決しますか?
- プロジェクトでJavaコードを記述することに加えて、フロントエンドコードもあります。フロントエンドで使用できるフレームワークを知っていますか?
- MySQLページングクエリステートメント
- MySQLトランザクションの特性と分離レベル
第二に、トランザクションの同時実行
- 繰り返し不可能な読み取りはどのようなシナリオで表示されますか?
- を持っているsqlの使用シナリオ
- フロントエンドブラウザアドレスからバックエンドへのhttpリクエストのプロセス全体は何ですか?
- httpデフォルトポート、httpsデフォルトポート
- DNSが何をするか知っていますか?
- 開発にはどのようなアイデアを使用しますか?アイデアのためによく使われるショートカットキーをいくつか教えてください。
- コードバージョン管理には何を使用しますか?
- git rebaseとmergeの違いは何ですか?
あなたの会社は多くの残業をしていますか?(オフトピック)
回答例:
多くのプロジェクトでSpringを使用していますが、Springの原則を理解していますか?AOPとIOCの原則
回答:(1)IoC(Inversion of Control)は、プログラムコードによって直接制御される従来の実装ではなく、コンテナ制御プログラムオブジェクト間の関係を指します。制御権はアプリケーションコードから外部コンテナに転送され、制御権の転送はいわゆる反転です。Springの場合、オブジェクトのライフサイクルとオブジェクト間の関係を制御するのはSpringです。IoCには「依存関係の注入」という別の名前があります。名前から、いわゆる依存関係の注入は、コンポーネント間の依存関係が実行時にコンテナによって決定されることを意味します。つまり、コンテナは特定の依存関係をコンポーネントに動的に注入します。
(2)Springの作業方法では、すべてのクラスがSpringコンテナに登録され、Springにそれが何であるか、何が必要かが通知され、システムが適切な時間に実行されると、Springが主導権を握ります。あなただけでなく、あなたを必要とする他のものにも。すべてのクラスの作成と破棄はスプリングによって制御されます。つまり、それを参照するのはオブジェクトではなく、オブジェクトのライフサイクルを制御するスプリングです。特定のオブジェクトについては、以前は他のオブジェクトを制御していましたが、現在はすべてのオブジェクトがスプリングによって制御されるため、これは制御の反転と呼ばれます。
(3)システムの運用中に、オブジェクトに必要な他のオブジェクトを動的に提供します。
(4)依存性注入のアイデアは、リフレクションメカニズムによって実現されます。クラスがインスタンス化されると、リフレクションを使用してクラスのsetメソッドを呼び出し、HashMapに格納されているクラス属性をクラスに注入します。全体として、オブジェクト作成の従来の方法では、通常、呼び出し元は呼び出し先のインスタンスを作成し、Springで呼び出し先を作成する作業は、Springによって行われ、次に呼び出し元が注入されます。これは、いわゆる依存関係の挿入または制御反応です。順番。依存関係の注入と設定の注入の2つの注入方法があります。IoCの利点:コンポーネント間の結合を減らし、ビジネスオブジェクト間の置換の複雑さを軽減し、オブジェクトを柔軟に管理できるようにします。
AOP(アスペクト指向プログラミング)
(1)AOPアスペクト指向プログラミングは、OOPの便利な補足であるIoCに基づいています。
(2)AOPは、「クロスカッティング」と呼ばれるテクノロジーを使用して、カプセル化されたオブジェクトの内部を分析し、複数のクラスに影響を与える一般的な動作を再利用可能なモジュールにカプセル化し、「アスペクト」という名前を付けます。 "、アスペクト。いわゆる「アスペクト」は、簡単に言えば、ビジネスに関連しないが、ログレコードなどのビジネスモジュールによって呼び出されるロジックまたは責任をカプセル化することです。これは、システムコードの重複やモジュール間の結合を減らすのに便利です。将来の操作性と保守性に貢献します。
(3)AOPは、「オブジェクト」を、オブジェクトのプロパティと動作をカプセル化する中空シリンダーと比較する水平関係を表します。アスペクト指向プログラミングの方法は、このシリンダーをセクションの形式で使用することです。分析し、選択的にビジネスロジックを提供します。切り取り部分は、いわゆる「アスペクト」です。次に、これらの切断面を巧妙なスキルで復元し、痕跡を残さずに効果を達成しました。
(4)AOPを達成するための技術は、主に2つのカテゴリに分けられます。1つは、メッセージを傍受してメッセージを装飾し、元のオブジェクトの動作の実行を置き換える動的プロキシ技術の使用です。このようにして、「アスペクト」を作成するための特定の文法が導入され、コンパイラーはコンパイル中に「アスペクト」に関するコードを織り込むことができます。
(5)SpringはAOPを実装します:JDK動的プロキシとCGLIBプロキシJDK動的プロキシ:そのプロキシオブジェクトは、インターフェイスの実現である必要があります。これは、操作中にインターフェイスの実装クラスを作成することにより、ターゲットオブジェクトのプロキシを完成させることです。 2つのコアクラスは、InvocationHandlerとProxyです。CGLIBプロキシ:実装の原則は、実行時に生成されるプロキシオブジェクトがターゲットクラス用に拡張されたサブクラスであることを除いて、JDK動的プロキシに似ています。CGLIBは効率的なコード生成パッケージです。最下層はASM(オープンソースjavaバイトコード編集クラスライブラリ)によって実装され、バイトコードを操作します。そのパフォーマンスはJDKよりも強力であり、パッケージasm.jarおよびcglib.jarを導入する必要があります。AspectJインジェクションと@AspectJアノテーションによって駆動されるアスペクトは、実際には動的エージェントを介して最下位レベルに実装されます。
(6)。AOPの使用シナリオ:
- 認証許可チェック
- キャッシング
- コンテキストの受け渡し
- エラー処理
- レイジーローディング
- デバッグ
- ロギング、トレース、プロファイリング、モニタリングロギング、トラッキング、最適化、キャリブレーション
- パフォーマンスの最適化パフォーマンスの最適化、効率チェック
- 永続性
- リソースプーリング
- 同期
- トランザクション管理
さらに、Filterの実装とstruts2のインターセプターの実装は、どちらもAOP思考の具体化です。
ユエバオインタビューシーンとインタビュー回答(ドキュメントサマリー)
やっと
また、インタビューに対処するために、Javaインタビューのコアナレッジポイントのコレクションを収集しました。この機会に、読者や友人に無料で提供できます。
目次:
Javaインタビューのコアナレッジポイント
読者や友人がインタビューに対処するのに十分な合計30のトピックがあり、友人が情報を検索して自分自身を整理する時間を節約できます!
Javaインタビューのコアナレッジポイント
情報の受け取り方:転送とプライベートメッセージ[インタビュー]に従って無料で入手してください!
読者や友人は、Javaインタビューの知識ポイントに関するこのガイドですでに良いオファーを受け取っています。親愛なる読者や友人、無料で私を見つけに来てください!
Dachangへの115のインタビュー(パート2)
友人がアリ、バイテダンスにインタビューし、ついに大きな工場からのこのインタビュー文書に基づいてバイテダンスからオファーを受け取りました!!!
情報の受け取り方:転送とプライベートメッセージ[インタビュー]に従って無料で入手してください!