Xiaoyingテクノロジーフォン:
1. Linuxプロセスのメモリモデル
そんな疑問が湧いてきて、私は真っ向から困惑しました。何気なく言えるのは、コード領域、データ領域、ヒープ領域、スタック領域、未使用領域です。もう一度聞くということは、分からないと直接答えることです。
2. 10億のデータの重複排除
ハッシュ セグメンテーション、ビットマップ、スパース配列。それぞれの実装には長所と短所があります。
3. Redis ZSet の基礎となるデータ構造の実現原理、ジャンプ テーブルが挿入データのレベルを決定する方法
私は最初この質問を知りませんでした。ただし、死んでいるかどうかはわかりません。ランダムに生成され、重み確率によって決定されます。値が大きいほど、生成される確率は低くなります。
4. HTTP はどのようにプロトコルを実装しますか? 頭と胴体をどうやって見分けるのか?
私が話しているのはキーと値の区別であり、ヘッダーと本文の位置が異なります。具体的に何を質問すればいいのか分かりません。
5. TCP が接続されている場合、Linux にメソッドをいくつ実装する必要がありますか? 関連付けにはどのような方法がありますか?
クライアントはソケットを作成し、接続を確立し、サーバーはソケットを作成し、bind をバインドし、listen を監視し、情報を受信します accept を送信し、recv を送信および受信し、最後に close を閉じるとしか言えません。
残念ながら満足できず、面接官が何を求めているのかわかりません。
6. マイクロサービスについて話す
私はマイクロサービスを使用したことがなく、それは履歴書にはっきりと書かれています。前回の Tencent 面接の後、私はマイクロサービスを使用したことがないことも特別にマークしました。結局、私はそれでも質問し、面接官が冗談を言いに来たことを示しました。
7. サービスガバナンスでは何が行われてきましたか?
ここが私が特に文句を言いたいところですが、私は少し概念を知っているとしか言いようがありません。サービスの検出とサーキット ブレーク、サービスの登録とアバランチの処理などはすべてこのカテゴリに属します。それから彼は私に計画を立てて、次の人を直接尋ねました。
8. HTTP のステータスは何ですか? 302 403 404 502
この質問は唯一の喜びに値する質問です。これまでの質問では満足できないと思われます。低レベルの質問をして試してみてください。
9. 大きなメモリを作成するには、ヒープまたはスタックのどちらを使用しますか?
ヒープ。スタックのデフォルト サイズはわずか 2M です。一部の関数変数は格納され、使い果たされると解放されます。GC 操作は主にヒープで実行されます。それで、なぜこのようなデザインになったのかと尋ねると、理由については考えたこともないと言いました。なぜスタックという名前がついたのか考えもしませんでした。
気づいたかどうかわかりませんが、私はプロセス全体を通じて Go について何も質問しませんでした。バックエンドの開発はすべて言語に依存しないのですか? 嘘の面接はなかったと思います。
私は電話面接に確信を持っています:
この面接官は私を少し混乱させました。最初は素晴らしいと思いましたが、自分で答えを見つけようとすると、面接官はあなたの質問さえ知らなかったことがわかりました。そしてあなたの言った答えは同じでした、不正解です。面接官がその場で答えを出さず、戻って自分で調べさせろと主張したのも理解できます。
1. リンクリストにリングがあると判断し、疑似コードを書く
電話インタビューなので、疑似コードを書くことではなく、疑似コードについてです。しかし、for ループをリンクリストに使用することはできないのでしょうか? for と while の両方がリンク リストをループできると言いましたが、私はかつて自分が馬鹿だと思っていました。
2. GPM スケジューリング モデル
私が言ったことを、彼はうーん、サイン認識だと言い続けました。説明、基本概念論、みんな同じレベルです。
3. ブラウザが前後に移動するために使用するデータ構造
これで、私は少し混乱し始めました。どんなデータ構造でも実現できる、それが面倒さと単純さの違いだと言いました。それから彼はスタックについて話しましたが、それが機能しないことがわかり、スタックを 2 つ使用できると提案しました。うーん、私はこのアプローチに同意します。
4. TCP の 3 ウェイ ハンドシェイクでは、最初のハンドシェイクの ACK にはどのような情報が含まれますか? Time_Wait はいつ発生しますか?
この質問で私は面接官を完全に裏切ってしまいました。最初は、ack に何が含まれているのかわかりませんでした。シリアル番号を消費する必要があることだけを知っていました。IPアドレスが含まれているとのことでしたが、理解できませんでした。接続を確立するための最初のハンドシェイクは ACK ではなく、SYN です。次に、ACK はサーバーからクライアントに返される確認番号であり、IP アドレスなどの情報はまったくありません。IP は接続確立の開始時にのみ使用され、プロセス全体を通して存在しますが、ハンドシェイク中に IP が必要であることはわかりませんでしたし、ACK に IP 情報が含まれることもわかりませんでした。Time_Wait は、接続がアクティブに解放されている場合にのみ使用できます。
5. スタックは何を保存しますか?ヒープはどうですか? アドレスの増加の方向性は何ですか? なぜこのように設計されているのでしょうか?
スタック領域はコンパイラによって開かれ、解放され、主にローカル変数と関数パラメータが格納されます。スタックのアドレス方向が分からないので、以前シングルチップマイコンを作ったことがあるのですが、ピンの処理が上位から下位まで全て行われているのではないかと考えました。ヒープはスタックの反対側にあります。なぜこのようなデザインになっているかというと、エンドの大きさで決まります。最初はわからなかったのですが、資料を読んでいて知りました。
6. Go のスタック サイズはどれくらいですか? 最大値はいくらですか?
これにはまったく気づきませんでした。ずっと 2M だと思っていました。ネットに載っていた 32M ではなく、最初は 2K だったことがわかりました。後でスタックを分割してスタックのサイズを拡張します。はい、最新バージョンのスタック サイズは 2K ~ 1G に変更されます。
7. キューが最適なパスを実現
何を質問すればいいのかわかりません、残念なことに迷路の地図になってしまったのです。
8. 2 つのリンクされたリストがジッパーのように交差し、これらの交点を取得します
本当に分かりません、まだ答えが見つかりません。一つの交点は分かるのですが、ジッパーのような複数の交点はよく分かりません。
9. ツリー構造を巡回した後、ツリー構造のメモリ情報を解放する方法
これは私がレベルがあると思う唯一の面接の質問ですが、以前の逆方向走査はすでに舗装されており、木構造のメモリの解放は逆方向走査の方法でのみ解放できます。
10. Linuxのネットワーク混雑状況と所要時間の確認方法
これは主に費やす時間です。時間は特定できず、サーバーにアクセスできないため、サポートすることしかできないと言いました。
11. TCP 接続の場合、パケット損失を検出した場合、サーバーは何をしますか?
再送信って言うんです。次に、すぐに再送信するか、それとも再送信する前に他の処理を行うかを尋ねました。上記の質問の後、私は確信しています、この友人は知らないに違いありません_
12. 貪欲なアルゴリズム
専門的なアルゴリズムでない限り、数人しか書けないと思います。
13. キューはどのようにして先入れ先出しを保証しますか?またスタックについてはどうですか?
配列、インデックス、まったく答え方がわからず、最終的に私の答えは主題から外れていると言いました。。。質問の意図すら理解していなかったと言いたいです。
14. Linux のアクセス許可制御を区別するにはどうすればよいですか?
わからない、地域が違うのか?良い。
最後に、何か質問があれば彼に尋ねてください。質問をしたところですが、あなたが挙げたすべての質問に答える必要がありますか? アルゴリズムはプラスだ、と彼は言いました。それから振り返ってみると、彼はボーナスポイントについて尋ねていました。
平安の面接:
面接官は多くの質問をしません。彼が行ったプロジェクトの詳細のみを尋ねます。詳細から、あなたが参加したかどうか、プロジェクトのすべての側面を本当に知っているかどうかがわかります。次に、Go の検査ポイントをいくつか尋ねました。非常に単純ですが、その種類が必ずしもわかっているわけではありません。知識のポイントは非常にシンプルです。これは、私の 4 回のインタビューの中で、最も一般の人々に即したプロセスと質問です。問題に対処する能力に関して重要なのは、頭が柔軟かどうかだけです。
要約すると、電話面接なしで面接できるなら電話面接してもいいし、会ってコミュニケーションできるなら会ってコミュニケーションすればいい。結局のところ、急いでも面接官に勝つことができます。
私たちは面接で型にはまったエッセイに慣れています。大規模な工場に入るには、非常に高度に見えても、一生かかっても使えないかもしれない知識を暗唱しなければなりません。スタックアドレスが高値から低値に増加する理由を知る必要がありますか? Go開発者へのインタビューでは、Goについては質問しませんでした。今日の見出しには、Go ポジションを募集していると直接書かれていましたが、Go 開発経験は必要ありません。しかし、一見高級そうな仕事を見つけるために、自分たちのビジネスそのものを無視して承認することに多くの時間を無駄にし、それに価値があるかどうかはわかりません。そのような面接のために履歴書を書くことに何の意味があるのでしょうか?そして、面接の際に紙の履歴書を玄関に持参することにこだわる企業、これはどれほどケチなのでしょうか?現在、平安の面接官だけが正常で、空を見るのではなく履歴書に基づいて質問します。みんなパートタイムで働いているのに、なぜわざわざパートタイムで働くのか。面接での型にはまったエッセイにどう対処すべきでしょうか? 知識が多すぎてどうやって始めればよいのかわかりません。