序文
Shuangsuo、私は再開を渡すことができないだろうと思った...しかし幸いなことに、Byteはチャンスを与えることができます。少し前にバイトビートの事前承認が始まりましたが、HCが多く、チャンスも多いとのことで、立ち上がって立ち上がるという精神で、杭州のデータ部に届けました。まずは、どうもありがとうございました。私は弟を押し込み、途中でいくつかのエピソードがあったので(私は間違った部門に投票しました...)、進行状況を追跡するのを手伝うことに非常に熱心でした、そして熱狂的な弟は私がHRに連絡するのを手伝ってくれました、そして最終的に私に考えさせました部門に投稿し、Javaバックエンド開発に投資しています〜インタビュープロジェクトの質問のほとんどは、私のオープンソースプロジェクトのキノコのブログと、インタビューのために準備したいくつかのメモに関するものです(大物、噴出してください...)
注:私はjavaバックエンド開発に投票しました〜インタビュープロジェクトの質問のほとんどは私のオープンソースプロジェクトのキノコのブログを中心に開発されました、そして私が以前にインタビューのために準備したいくつかのブラッシングノートがあります(大物は軽くスプレーしてください...)必要がありますクリックして取得
面接時間
人事面接後、1週間以上待ちました。寒いと思いましたが、驚きを期待せず、願い事をしました。
- 1日目:ファーストサイド+セカンドサイド
- 2日間待機:サードサイド+ HRサイド
- 1週間後:趣意書を待つ
ファーストサイド
最初の側面は基本的な側面だと思います。焦点は私の技術の幅広さといくつかの技術の習得にありますが、私の弟は特定のポイントを掘り下げていませんでした。インタビュー時間は約1時間です。
- 自己紹介
- 研究の方向性に合った仕事を考慮せずに、どのようにバックエンドのポジションを提供する予定ですか
- OAuth2.0を理解したことがありますか?OAuth2.0についての理解について教えてください
- Mushroom Blogの開発中に、他のオープンソースフレームワークについて知っているか、または学びますか?
- キノコのブログ投稿を公開するプロセスは何ですか?それは複数人のブログシステムですか?
- hexoなどの他のブログフレームワークを知っていますか
- hexoとmushroomのブログの違いは何ですか?マッシュルームブログの機能と利点は何ですか
- キノコのブログでRabbitMQを使用しているのを見て、RabbitMQが導入された理由について話してください。
- RabbitMQと、ActiveMQ、RocketMQ、Kafkaなどの他のメッセージキューとの違いは何ですか
- ブログプロジェクトでRedisが使用されているのはなぜですか?
- Redisに保存されているのは人気のある記事ですが、どうやって入手しますか?これに問題はありますか?
- ロングテール効果について聞いたことがありますか?推奨フィールドで設定した推奨レベルにより、これらの記事のクリック数が多くなり、人気とクリック数が時間の経過とともに減少することはありません。解決策はありますか?
- このログイン認証でJustAuthを使用しているようです。アカウント漏洩の問題について話しますか?
- Redisについて話しましょう。スレッド切り替えの問題はありますか?
- RedisシングルスレッドモデルとIO多重化について話す
- Redisの大きな重要な問題です。サイズが2Mの値がある場合、問題はありますか?サポートされている最大値のサイズはいくつですか?
- RedisクラスターRedisクラスターとマスタースレーブレプリケーションの原理について話しますか?
- Redisの歩哨、つまりRedisSentinelについて話します
- Linuxについて話しましょう。Linuxが現在の負荷状況を確認する方法を知っていますか?
- 他のLinuxコマンドを知っていますか?
- cat、tail、vi、vimコマンドの違いは何ですか?
- Linuxで大きなファイルを開いたり表示したりする必要がある場合は、どうしますか?
- Httpコードについて話しましょう。3XXステータスコードが何に対応するか知っていますか?
- あなたが知っている他のいくつかのステータスコード、4XXと5XXについて話しますか?
- 次に質問しましょう。どの言語でも、好きな言語を選択してください(ps:実際にはleetCodeの元の質問です。これまでに同じようなことをしたことはありません。数分間考えました。アイデアがありませんでした。泣きました。アイデアを聞きたいです。次に質問を変更します。その後、考えます。とてもシンプルです。最初のもので並べ替えるだけです)
# 给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,里面的数组不一定连续并且有序,假设我输入 2,这个2表示出现次数最高的两个
# 那么你需要给我返回 2,3
- トピックを変更し、次のトピックを見て、配列内で最も多く出現するTOP Nを見つけて、ルームメイトの話を聞いてみましょう。これは元のリートコードの質問のようで、涙目で、アルゴリズムが弱すぎます。
# 给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,里面的数组不一定连续并且有序,假设我输入 2,这个2表示出现次数最高的两个
# 那么你需要给我返回 2,3
それから私の最初の考えはハッシュを通して出現の数を保存することでした、そして次に鍵は配列に現れる値です。最後に、ハッシュで回数を並べ替えて、最後に上位Nを取得します。時間の複雑さはO(N ^ 2)であるため、最適化のアイデアがあるかどうかを尋ねました。O(N)に最適化できますか、長い間理解していません。優れたハッシュテーブルを最大限に活用して構築する
その後、インタビュアーはいくつかのアイデアを出しました。配列の長さから下にトラバースして見つけます
- レトリックのセッションで、インタビューのパフォーマンスについて聞いたところ、アルゴリズムの能力が比較的弱いと言われ、かっこいいと思いました。。。次に、一方では、ここで次のリンクに移動でき、約5〜10分待つ必要があります。
セカンドサイド
2番目の側面は技術的な詳細なインタビューです。インタビュー時間は約50分です。
- 自己紹介
- ブログはオープンソースですか、使用されているオープンソースプロトコルは何ですか、ブログユーザーは何人いますか?
- SolrとElasticSearchがブログで使用されているのを見て、それらの原則と反転インデックスについて話しますか?
- SolrまたはESで使用されるいくつかの中国語の単語セグメンターについて学びましたか?
- これらのテクノロジースタックについて話すと、mysqlとredisのどちらに精通していますか?
- MySQLの基礎となるインデックス構造であるInnoDBのB + Treeについて話しますか?
- BツリーとB +ツリーの違い
- MySQLインデックスの開発プロセスについて話しますか?B + Treeですか?インデックス、ハッシュ、バイナリソートツリー、AVLツリー、Bツリー、B +ツリーチャットはありません。
- MySQLのトランザクションについて話しますが、トランザクションとは何ですか?
- MySQLのトランザクションレベルとは何ですか?また、さまざまなトランザクションレベルの問題は何ですか?
- 繰り返し可能な読み取りとファントム読み取りの違いについて話しますか?
- MySQLでファジーマッチングにlikeを使用する場合、インデックスは使用されますか?確かにそれは機能しませんか?(インデックスについてはよくわかりません。双方が終わった後、私はそれを補うために戻ってきました)
- Redisについて話してください、それはあなたのプロジェクトでどのように使われていますか?
- Redisが分散ロックを実装する方法について話しますか?
- Mushroom Blogにキャッシュの不整合はありますか?どのように解決しましたか?
- Redisでのキャッシュ侵入の問題とそれを解決する方法について話しますか?
- キャッシュの浸透を解決する他の方法はありますか?ブルームフィルターについて学びましたか?
- Redisでは、キャッシュの大部分が無効になり、すべてのリクエストがデータベースに送信されます。解決策は何ですか?
- 有名人間のニュースなど、ホットなデータがあり、多数のメロンユーザーがバックグラウンドに殺到しているが、サーバーが対応するデータをキャッシュしていない場合、データベースのダウンタイムが発生する可能性があります。この状況を回避するにはどうすればよいですか。
- JVMの構造について話しますか?
- ゴミ収集の原理について話しますか?そしてゴミ収集アルゴリズム
- コピーアルゴリズムとマークソートアルゴリズム?
- 新世代でタグソートアルゴリズムを使ってみませんか?または、古い時代に複製アルゴリズムを使用しますか?
- Volatileについて学びましたか?Volatileについてのあなたの理解について話してください
- Volatileはどのように可視性を保証しますか?そして、可視性のメカニズムを実現する方法。
- Volatileが広く使用されている場合の問題は何ですか?
- オペレーティングシステムのスレッドとそのステータスについて話します
- スレッドとプロセスの違いは?
- マルチプロセスアプリケーションではなく、マルチスレッドアプリケーションを提案するのはなぜですか?
- Linuxでは通常どのコマンドを使用しますか?
- ポート番号またはプロセス番号を表示する必要がある場合、どのコマンドを使用しますか?
- あなたが行った別のプロジェクトについて教えてください。ちょっとした紹介
- さあ、タイトルを書いてみてください
# 链表的两两翻转 # 给定链表: 1->2->3->4->5->6->7 # 返回结果: 2->1->4->3->6->5->7
- 卒業時期はいつですか?インターンシップのポジションについてインタビューしていますか?
- 修辞リンク:インタビューのパフォーマンスについて質問しますか?習熟は良いが、MySQLは不十分であることをRedisに伝えます。フォローアップの手配について質問してください。
サードサイド
それはリーダーの顔でなければなりません、インタビュー時間は約50分です
- 自己紹介
- 不思議なことに、Code Cloudを使用している人はそれほど多くありません。Githubを使用してみませんか?
- あなたの英語レベルはどうですか?
- オープンソースプロジェクトについて話しますか?このプロジェクトには800以上のいいねがあると思いますが、このオープンソースプロジェクトでの主なタスクは何ですか?
- チャットするポイントをいくつか見つけましょうか。ESとSolrから始めましょう。どちらも使用していますか?
- SQLで検索をどのように実装しますか?
- 同様のマッチングを使用する場合、クエリは非常に遅くなりますか?
- ESとSolrはどちらも下部にルンスを使用していますが、ルンスについての理解を教えてください。
- 「新冠肺炎」などの新しい単語のように、ルンスには単語セグメンターもありますが、うまく分割できますか?
- 最新の単語のセグメンテーションを解決するためにレキシコンを人為的に維持することに加えて、他のより良い方法を知っていますか?
- 他のオープンソースの単語セグメンテーションライブラリを知っていますか?
- 辞書ツリーについて話しますか?
- SolrとESはどちらも最下層でLunceを使用していますが、両者の違いは何ですか?
- Solrのいわゆるクラスター環境とESのいわゆる分散環境の違いは何ですか?
- 上記のマイクロサービスについておっしゃいましたが、マイクロサービスの概念を理解したことがありますか?
- 現在のマイクロサービスも複数のjarパッケージにパッケージ化され、サーバーにデプロイされています。サーバーに問題がある場合、サービスは利用できなくなります。良い解決策はありますか?
- チャットサービスの登録と発見?
- サービスの登録と検出は、実際にはレジストリの概念に依存します。レジストリがハングアップしてサービス全体が使用できなくなりますか?適切な解決策はありますか?
- Zookeeperの選挙プロセス全体を理解しましたか?
- Zookeeperの分散コンセンサスプロトコルについて話しますか?
- インデックスについて話してください、私はあなたにテーブルを書きます、次のクエリステートメントを見てください、どのインデックスがなくなっていますか?
create table 'tb' (
id int,
name varchar(64),
status int,
createtime timestamp,
PRIMARY KEY (`id`)
)
-- 创建了三个普通索引
create index index_name on table('name')
create index index_status on table('status')
create index index_createtime on table('createtime')
-- 给定SQL语句,判断下面查询会用到几个索引
select * from tb where status = 1 and name = "zhangsan"
- 上記のSQLではいくつのインデックスが使用されていますか?それらはどれですか?
- InnoDBの基礎となるインデックス構造を理解しましたか?
- 2つのインデックスクエリの結果に対してどのような操作が実行されますか?交差点、組合?
- MySQLで遅いクエリが発生した場合、解決策はありますか?
- 説明について話しますか?Explainの実行後、表示されるフィールドは私たちを助けることができますか?
- あなたのブログにはまだRedisに関する記事がいくつかありますが、Redisについてのあなたの理解について話してもらえますか?
- なぜRedisはこのような高い同時応答を維持できるのでしょうか。
- IO多重化技術の原理を理解している
- 1つのスレッドを介して、複数のスレッドを同時に接続するときに複数のスレッドの切り替えがありますか?(私はピットにいるような気がします...)
- jedisを介してredisに接続する場合、すでにプロセスに接続していますが、redisは他のプロセスと通信できますか?
- Redisは1秒あたり100,000のリクエストを処理できます。上記の内容に従うと、各インタラクションは1 / 100,000秒でのみ完了するということですか?
- Redisのソースコードを知っていますか?
- MySQLはB + Treeを使用し、RedisのSortSetはスキップテーブルを使用します。それらの違いは何ですか?MySQLがスキップテーブルを使用するのはなぜですか、またはRedisはB + Treeを使用しないのですか?
- コーディングスキルについてどう思いますか?次に、オペレーティングシステムの知識について話し、質問をします。オペレーティングシステムには、キャッシュ、メインメモリ、仮想メモリ、外部メモリがありますが、それらの間にはどのような関係があり、どのような機能があるのかご存知ですか?
- 彼らにとっては間違いなく問題があります。つまり、メインメモリがいっぱいになるか、仮想メモリがいっぱいになると、ページング操作が必要になります。これらのページングアルゴリズムを知っていますか?
- LRUについて話しましょう。あなたのアイデアについて話すためにLRUアルゴリズムを書くように頼みますか?
- 時間の複雑さはO(N)です。それをO(1)の時間の複雑さにする方法はありますか?
- OK、アイデアは大丈夫です、LRUアルゴリズムを手で書くことはできますか?(二重リンクリスト+ハッシュ?)
- 修辞リンク:私は組織構造とpythonの使用について尋ね、プロジェクトに参加しました。次に、インタビューのパフォーマンスについて質問しました。回答:コードがうまく記述されていないため、このようにLRUを記述することは適切ではないと思います。(心が痛む声、涼しい息をします...)インタビューが終わったと思った後、後でページを閉じる準備をしていると、インタビュアーがちょっと待って、他のクラスメートが私とチャットしましたか?
HRフェイス
簡単なコミュニケーションをとるために10分かかります
- 自己紹介
- なぜこの学校を大学院入学試験に選んだのですか?
- 振り返ってみると、大学から現在までの間に最も苛立たしいことは何でしたか?
- 改善が必要な分野はありますか?
- 今後の仕事のために、どの側面に焦点を当てますか?
- クラスメートに関しては、皆さん全員がバイト配信側のポジションを持っていますか?
- 再質問リンク:面接の結果については、簡単な理解ですが、面接の結果は約1週間で公開され、メールまたは電話で通知されます。面接の結果については、前の面接官を総合的に評価してから、認めるかどうかを決める必要があります。
まとめ+面接前の準備(参考・学習用)
スペース上の理由により、必要な友達はクリックして直接入手できます
提案をさせていただきたいのですが、面接官がグループ内の事業についてお話を伺うのであれば、良いおしゃべりをする機会をとらえなければなりません。面接官の目を直接事業の核心に輝かせるような質問をするのが一番です。誰でもコードを書くことができ、基本的な知識はオンラインで見つけることができますが、誰もが製品と新しいアイデアを理解しているわけではありません
(1)最初のステップは、インタビューの前に完全な知識フレームワークの概要を整理することです
アーキテクチャシステムを、コンカレントプログラミング、JVMパフォーマンスチューニング、Springオープンソースフレームワークのソースコード解釈、キャッシュデータベース、分散アーキテクチャ、マイクロサービスアーキテクチャの5つの主要モジュールに分割します。
(2)第2のステップは、インタビューの高周波技術を概要を通して1つずつ克服することです。
1.コンカレントプログラミング(手書きのメモ:コンカレントプログラミング+コンカレントprogramming_principle +コンカレントprogramming_application +コンカレントprogramming_mode)
- モデル記事を共有する同時プログラミング
- コンカレントProgramming_Mode
- コンカレントProgramming_Application
- コンカレントProgramming_Principles
モデル記事を共有する同時プログラミング
コンカレントProgramming_Mode
コンカレントProgramming_Application
コンカレントProgramming_Principles
2.パフォーマンスチューニング(Javaパフォーマンスチューニングコンバット:Javaプログラミングパフォーマンスチューニング+ JVMパフォーマンスチューニング+ Mysqlチューニングノート)
- JVMパフォーマンスの最適化
JVMパフォーマンスの最適化
- JVMパフォーマンスの監視と調整
JVMパフォーマンスの監視と調整
- Mysqlチューニングノート
3.Springオープンソースフレームワークソースコードの解釈
4.データベースをキャッシュします
- Redisコアノート
Redisコアノート
- MongDBベーシックからアドバンスト
MongoDBをすぐに始めましょう
MongoDBクラスターとセキュリティ
5.分散アーキテクチャ
- カフカのソースコード分析と実際の戦闘
6.マイクロサービスアーキテクチャ
- Spring CloudAlibabaテクノロジースタックフルソリューション
- SpringCloudマイクロサービスノート
- k8s +ジェンキンスノート
(3)3番目のステップは、インタビューの質問をブラッシングすることです。インタビューのバイトビートアルゴリズムは必須です。
トップ25のJavaインタビュートピック
ByteDance一般的に言って、インタビューの経験はかなり良いです。特にコードの質問を引き裂くとき、インタビュアーは最初にアイデアを提供するように求めます。アイデアに問題がある場合は、彼がそれを修正するのを手伝ってくれます。コーディングの段階に入りましたが、アルゴリズムの練習はあまりしていませんでした。LeetCodeはあまりしていなかったので、インタビューで2回涙を流しました。。これは事前の最初のショットと見なすことができ、後で素晴らしいパフォーマンスを楽しみにしています〜
上記は、面接前に収集した面接資料と学習ルートプランです。皆様のお役に立てれば幸いです。困っている方は、クリックして直接入手してください。