対面での 3 回のラウンドの後、最初の 2 回は記録されたビデオが壊れたため、多くの質問を忘れてしまいました。
ラウンド1
-
Q: ハッシュマップ スレッドが安全ではない理由を説明する例を挙げてください
A 1 : JDK1.8 HashMap スレッドは安全ではありません: データ カバレッジ:
コードの 6 行目は、ハッシュの衝突があるかどうかを判断するためのものです。スレッド A と B が put 操作を実行しており、ハッシュ関数によって計算された挿入添字が同じである場合、スレッド A が 6 行目のコードを実行すると、タイム スライスが枯渇したため中断され、スレッド B が要素を挿入しますタイムスライスを取得後、添え字に挿入して終了 通常挿入、その後スレッドAがタイムスライスを取得 ハッシュ衝突判定は以前に行っているので、今回は判定はしないが、挿入はこれにより、スレッド B によって挿入されたデータがスレッド A によって上書きされ、スレッドが安全ではなくなります。
CAS 操作を使用して、同じ場所で ConcurrentHashMap を比較しました。
-
揮発性、CASなど
-
AQS
-
このデータが mysql と elasticSearch の両方に保存されるのはなぜですか? es にのみ保存できますか?
-
カフカはメッセージの信頼性をどのように保証しますか
-
カフカはどのように消費をスピードアップしますか
ラウンド 2
のアルゴリズムとデータ構造に関する質問。たとえば、topK: ドキュメント内の頻度が上位 k (k は比較的小さく、多くても 1/4) の単語を見つける方法は?
後で、メモリがドキュメント全体を保持できる場合、2つの方法があると考えました. クイックソートに基づく2番目の方法は、時間の複雑さO(N)を実現できます:まず
、どちらの方法を使用しても、最初に文書内の文書を数えます. 単語の頻度, そしてエントリの配列を取得します.時間のこの部分はO(N). 次に:
方法 1: 小さなルート ヒープを使用します。この部分の時間計算量は O(Nlogk) です。
方法 2: クイック ソートに基づいて、この部分の時間計算量は O(N) です。
メモリがドキュメント全体を保持できない場合は、方法 1 に基づいて拡張します。
ラウンド 3
- 仮想カウンセラー プロジェクトを紹介し、分散ロックについて説明します。
- HTTP 接続が長い
- Linux で使用したパケット キャプチャ ツールはどれですか?
- MTU(Maximum Transmission Unit)を知っていますか
- netstat コマンドを実行すると、多くの tcp 接続が TIME_WAIT 状態になっていることがわかります.これはどういう意味ですか?
- ロックを持つ親プロセスが子プロセスを fork します.2 つのプロセスのロックは相互に排他的ですか?
- プロセスおよびスレッド関連の問題
- k8s ネットワーク: 異なるノード間のポッドはどのように通信しますか? 名前空間? IPTables を知っていますか?
- ネットワークに関しては、トンネリング技術を理解していますか?
- 同期ロックのアップグレード
- Maven ビルド中のパッケージ競合の問題を解決する方法