2020年にMogujieでリークされた3面のインタビューの質問:Spring Cloud + Deadlock + MySQL + Nginx(インタビュー終了時)

序文

面接は難しいですか?最終結果は良いですか悪いですか?それは、インタビュアーのバックグラウンド(オーラ+スキル)、メンタリティと認知、およびコミュニケーションスキルに依存します。そして、いくつかの主流の大規模なインターネット企業のインタビューは、インタビューの間にあなたの能力を示すことを要求し、その結果、インタビュアーの認識と認識を得ます。

プログラマーは、応募する際に何層もの面接を行う必要があります。ことわざにあるように、誤ってナイフを研ぎ、薪を切らないようにし、面接の準備をすることで、面接中に面接官の質問や予期しない状況に誰もがよりうまく対処できるようになります。

多くの人々が技術面接の準備をし、インターネット上で多数の「Java Interview Written Test Questions」を使用しています。今日、編集者はPinduoduo JAVAプログラマー向けの一連の面接質問も作成しました。友達が試すことができます。詳細なニーズの答えは直接ここをクリックできます返信信号:CS無料アクセス!

片側

簡単な紹介

トランザクションのACID。トランザクションの分離を詳細に説明します

ダーティリーディング、ファントムリーディング、繰り返し不可のリーディング

赤黒木、二分木アルゴリズム

どのコレクションが一般的に使用されていますか?ArrayListとLinkedListの違いは何ですか?HashMapの内部データ構造?ConcurrentHashMapセグメントロック?

jdk1.8のhashMapとconcurrentHashMapに対してどのような最適化が行われましたか

ハッシュの競合を解決する方法、および競合がある場合は、ハッシュテーブルでターゲット値を見つける方法

同期とReentranLockの違いは何ですか?

ThreadLocal?アプリケーションシナリオ?

Java GCメカニズム?GCルーツとは何ですか?

MySQLの行ロックにデッドロックはありますか?

両面

楽観的ロックと悲観的ロックを理解していますか?JDKの楽観的ロックと悲観的ロックには何が関係していますか?

Nginx負荷分散戦略?

Nginxを他の負荷分散フレームワークと比較しましたか?

Redisはシングルスレッドですか?

Redisの同時実行性が高い理由は?

Redisを使用してホットデータを処理する方法

Redisセンチネル、レプリケーション、クラスターについて話す

仕事で最適化されているテクノロジーは何ですか?JVM、MySQL、コードなどについて話します。

三方

Spring Cloudは何を使用していますか?負荷分散を実現するにはどうすればよいですか?サービスがダウンしているかどうかを判断する方法は?

ネットワークプログラミングnioおよびnetty関連、nettyスレッドモデル、ゼロコピー実装

分散ロックの実装について何を知っていますか?実装方法について詳しく話す

同時実行性の高いアプリケーションシナリオでは、テクノロジに何を含める必要がありますか?アーキテクチャを設計するには?

高い同時実行性の問題の隣で、スパイクの技術的アプリケーションについて説明しました:kafka、redis、mycatなど。

最後に、参加したプロジェクト、比較的技術的な内容が高いプロジェクト、関連するアーキテクチャ設計、担当しているコアコーディングについて説明します。

Javaプログラマプロジェクト紹介ノート

プロジェクトの経験について尋ねられると、検討されるのはテクノロジーではなく、プロジェクトの概要能力です。以下の手順に従ってください:

  1. ベースラインとしてのプロジェクトのライフサイクルから始めて、この紹介はより階層化されています。次に、プロジェクトにおけるあなたの割合と、あなたが責任を負う主なポイントは何ですか。

  2. プロジェクトの概要の後で、ほとんどのプロジェクトでこの問題が発生するため、各プロジェクトのプロセスで遭遇する困難な部分について話し合う必要があります。そのため、問題の解決方法を正確に説明し、問題解決の考え方も反映させてください。 。

  3. プロジェクトに関する質問や不明な点について面接担当者に丁寧に尋ねます。

オファー=メンタリティ*(ハードパワー+ソフトパワー)+運運誰もが継続的な面接の失敗を経験し、要約し、面接経験を最適化し、技術的な深さを強化して、好きな仕事を見つけます。 BATインタビューツアーが役立ちます。

知識の組み合わせについて

知識をどれだけうまく準備できるかによって、片面と両面をうまく通過できるかどうかが決まります。したがって、面接の前に知識を整理し、知識の予備を改善する必要があるかどうかを確認する必要があります。

知識の分類については、私自身が次の部分に分けました

  • 並行プログラミング:マルチスレッド+高い並行性+ CAS +ロック+スレッドプールの最下層など
  • パフォーマンス調整:I / Oおよびネットワーク調整+アルゴリズム調整+ JVM調整+ MySQL調整+ Tomcat調整
  • Springファミリーバケット:Spring + SpringMVC + Spring5.xコアメカニズムのソースコード
  • NoSqlキャッシュアーキテクチャ:redis + mongoDB
  • 分散&マイクロサービス:SpringBoot + SpringCloud + docker + maven + git


ナレッジを整理したら、空きをチェックして記入する必要があるので、これらのナレッジポイントについて、手元にたくさんの電子書籍とメモを用意しました。これらのメモは、各ナレッジポイントを完全に要約しています:

Javaコアナレッジポイントの仕上げ

Redis研究ノート

最後の祝福

なぜプログラマーは大きな工場に入り、できるだけ早く大きな工場に入らなければならないのですか?大きな工場に入ることの重要性と必要性​​を要約した6つのキーワード:公平性、成長、パターン、価値、サークル、その他。

これらの6つのキーワードを簡単に読んだ後、あなたはあなた自身の考えも持っていると思います。あまりナンセンスではなく、個人の選択を尊重し、大規模な工場に入るかどうかに関係なく、誰もが目標と価値を達成できることを願っていますが、資格のある優れたプログラマーであることが専門家の倫理です!

最後に、インタビューZhenti分析と研究ノートおよびその他のドキュメントpdfに関連する記事は、無料で受け取ることができます。必要な場合は、ここをクリックして直接、ここにあります。返信信号:CSは無料で受け取ることができます。(誠意あふれる)

おすすめ

転載: blog.csdn.net/weixin_50520844/article/details/108772923