BATの高度なJavaインタビューの質問:JVM + Redis + Spring + MySQL +データベース+マルチスレッド+アルゴリズム

最近、良いニュースがたくさんあります。今日の経験を共有した小さなパートナーは、Javaで4年以上働いています。

過去2か月間、Ali、ByteDance(Toutiao)、JD.com、Kuaishou、iFLYTEKなど、多くの第一線のインターネット企業の高度なJavaインタビューに参加しました。幸い、2つのオファーを獲得しました。最後に、そのうちの1社が入社するように選ばれました。

プライバシーに関しては、どの会社で働いているのか、各面接の質問の具体的な出典は明らかにしません。過去2か月間に遭遇した実際の面接の質問をパッケージ化して、一度に全員と共有します。 。

面接の質問の要約

Javaの基本

基本的に、これらの企業は関連する財団について質問するので、一般的に、基本的な準備が必要であり、一般的であるため、この部分は非常に重要です。

  1. Javaシリアル化とは何ですか?Javaシリアル化を実装する方法は?
  2. Javaの例外の種類は何ですか?それぞれの使い方は?
  3. 一般的に使用されるコレクションクラスは何ですか?
  4. Javaには独自のメモリ回復メカニズムがありますが、なぜまだメモリリークの問題があるのですか?
  5. NIOとは何ですか?どんなシーンに向いていますか?
  6. HashMapの実装原理、HashMapのスレッドセーフを確保する方法について話しますか?

コンピュータネットワーク

コンピュータネットワークの部分のトピックはまだ非常に簡単であり、調査のポイントはそれほど詳細ではありません。

一般的に言って、これらは問題です:

  1. TCPのステータスは何ですか?
  2. TCPのスライディングウィンドウプロトコルの用途は何ですか?原則について話します。
  3. TCPウェーブを4回詳しく説明してください。
  4. 握手は3回、握手は4回、2回しないのはなぜですか。
  5. RPCとhttpの違いは?
  6. HTTPプロトコルの方法は何ですか?

Java仮想マシン(JVM)

  1. JVMメモリモデル構造?
  2. メソッド領域とダイレクトメモリはいつ表示されますか?
  3. JVMコレクタG1のメモリモデルとCMSのメモリモデルの違いは何ですか?
  4. JVMチューニングを使用しましたか?
  5. Javaのメモリ使用量(jconsole、コマンドjmap、jstackなど)を確認する方法は?

データベース

  1. 結合(内側、左、右)の違いは何ですか?
  2. ユニオンとユニオンオールの違いは何ですか?
  3. ACID、具体的にはどういう意味ですか?
  4. トランザクション分離レベル?
  5. ファントムリーディングと繰り返し不可能なリーディングの違いは何ですか?
  6. MysqlとMongodbの違いは何ですか?
  7. 、Mysqlストレージエンジンのインデックスの実装メカニズム。
  8. データベーストランザクションのいくつかの粒度。
  9. 高い同時実行性と在庫削減の問題を解決するにはどうすればよいですか?
  10. どのような状況でSQLはインデックスを使用しませんか?
  11. 行ロック、テーブルロック、楽観的ロック、悲観的ロックの違いは何ですか?

  1. Beanのライフサイクル?
  2. DIとは何ですか、なぜDI、DIのタイプ(コンストラクター注入、メソッド注入)ですか?
  3. Springは循環依存の問題をどのように解決しますか?
  4. SpringフレームワークにおけるIOCの原則は何ですか?
  5. 春の依存性注入の方法は何ですか
  6. Springはデータベーストランザクションをどのように実装しますか?
  7. Spring BootとSpringの違い、TomcatがSpring Bootにどのように埋め込まれているのか、Spring BootのTomcatはどのように起動するのですか?

マルチスレッド

  1. スレッドの状態はいくつありますか?特定の状態フロー図を描いてください。
  2. Javaの待機とスリープの違いは何ですか?
  3. volatileはどのように命令の並べ替えを実装しますか?
  4. スレッドプールのブロッキングキューがいっぱいになった場合はどうなりますか(拒否戦略)?
  5. SynchronizedとAQSには類似点と相違点があります。AQSの公平性と不公平性を実現するにはどうすればよいですか。
  6. マルチスレッドで整数を加算および減算するときに、なぜvolatileを使用できないのですか?
  7. voliatileとsynchonizedの違いは何ですか?synchonizedとjdkによって提供されるLockパッケージの違いは何ですか?

Redis

あなたが知っている一般的に使用されるRedisクライアントの同時実行モデルをリストしてください。

  1. 分散キャッシングとコンシステントハッシュについて話しましょう。
  2. 単一マシンのキャッシュホットスポットの問題を解決するにはどうすればよいですか?
  3. MemcacheとRedisの違いは?
  4. 一般的に使用されるメッセージミドルウェアを列挙します。メッセージを保存する場合は、どのように実現しますか?
  5. Zookeeperの機能は何ですか?

マイクロサービス

  1. マイクロサービスとは何ですか?
  2. マイクロサービスサーキットブレーカーとは何ですか?サービスの低下とは何ですか?
  3. マイクロサービスの長所と短所は何ですか?
  4. あなたが知っているマイクロサービス技術は何ですか?1〜2件の事例を挙げてください。
  5. SpringCloudとDubboの違いは何ですか?

アルゴリズム

  1. 二分木をトラバースする方法は?
  2. 二分木幅トラバーサル?
  3. Javaでバブルソートアルゴリズムを作成しますか?
  4. チェーンストレージの構造を説明してください。
  5. データ構造の観点から、リンクリスト、ツリー、グラフの基本的な知識を理解していますか?
  6. ツリーのプレオーダートラバーサル、ミドルオーダートラバーサル、およびポストオーダートラバーサルを理解します。グラフの幅優先探索アルゴリズム、深さ優先探索アルゴリズム?

HRフェイス

  1. 仕事でよく使われる技術に加えて、他の主流の新技術に注目して学びますか?
  2. 前の会社を辞めた理由は何ですか?
  3. あなたの長所と短所はなんですか?
  4. 将来のキャリアプランは?

面接経験のまとめ

面接の質問の範囲

面接では、主に候補者の基本的な知識、プロジェクトの経験、技術的な深さを調べます。各候補者は、わずかに異なる質問と難易度を尋ねられます。

一方で、面接官が最初にあなたについてどのように感じているかによって異なります(実際にはブラインドデートのようです)。面接の数分前に面接官に良い印象を与えることができれば、その間に得られる機会と寛容性インタビュー、比較的多いでしょう。

一方、オンサイト面接では、履歴書からの質問の60%〜80%があります。面接官は、あなたに記載されている知識、経験、プロジェクトに基づいて、スキルの習得を深く掘り下げます。履歴書。したがって、覚えておくことが非常に重要です。習熟度を慎重に使用し、習熟度を慎重に使用し、習熟度を慎重に使用します。特定のテクノロジーの肌に触れて理解するだけで、非常にひどく乱用されることを確実にするために履歴書に習熟していると言えますが、最終的には、利益が利益を上回ります。

すべての面接を真剣に受け止めてください

十分な準備ができていないと、お互いの時間を無駄にするだけでなく、苦労して得た機会も無駄になります。良い会社から面接の機会を得るのは簡単ではないことを知っておく必要があります。機会は準備ができている人のためです。 。私が今注いだ努力と忍耐力は、将来いつか豊かに報われるといつも信じています。

面接の最後に、不足していないか確認し、空席を埋めます

すべての面接はあなたの知識と技術力をテストする機会です。面接後は、タイムリーに要約して確認し、欠落をチェックしてから、的を絞った方法で勉強することをお勧めします。これは、次の面接で成功するだけでなく、あなた自身の技術的知識の蓄積を増やすことは、1つの石で2羽の鳥を殺すこととして説明することができます。

上記は、面接の過程で私が遭遇した質問と私が蓄積した経験であり、すべてあなたと共有するためのものです。

お役に立てば幸いです。

参考のために、AlibabaGroupの高度なJava強制試験の質問と回答の最新の要約を送信してください。

転送+フォローしてVXを追加:MXW5308は  すぐに無料で受信できます。

おすすめ

転載: blog.csdn.net/weixin_45132238/article/details/114022062
おすすめ