Linuシステムの開発と学習ルートのインタビューよくある質問

C / C ++関連

  • C ++仮想関数の原則

  • スマートポインタ

  • どのようにC言語、C ++オブジェクトだけでなく、民間のメンバー

  • C ++多型の実装

  • 新しい、mallocと原則基本となる実装の違い

  • STLのベクトルどのように展開

  • 仮想関数ポインタの初期化処理

  • C ++ 11個の原子変数の説明

  • C ++ 11で使用することを特徴は何ですか

  • 理解し、オーバーロード書き換える方法

  • どのようにC言語でstaticキーワードを理解する++

  • ベクトルとリストの違い

  • C ++のメモリ割り当て

  • そして、達成するために基本的なマップを設定

  • クラスの静的変数の初期化

  • デストラクタは仮想することができますか?何故

  • ディープコピーと浅いコピー

  • 区別ポインタ定数、定数ポインタ

C言語の構文を推奨図書: "Cプログラミングの専門家"、 "Cポインタ"
C ++言語の推薦図書: "C ++入門" "C ++効果"
++ STL基礎となる原則C言語: "STL-ソース解析プレーン"

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

  • 原子炉とproactorに導入
  • リアクターの組成
  • TIME_WAIT害
  • TIME_WAIT長く、なぜ?
  • なぜIPフラグメンテーション
  • これは、プロジェクトがスレッドプール、オープンあまり、スレッドプールの使用する理由を使用言いましたか?
  • 選択してファイルディスクリプタ差
  • 何が0を返す選択
  • 読める何場合のepoll
  • 私は手を振って4倍のTCPが必要ないとき?
  • 非ブロッキングを設定する方法
  • ゼロコピーとは何ですか?
  • TCPとUDPの違いやシナリオ
  • 信頼性の高いUDPを設計する方法
  • スティックパッケージを解決する方法
  • 輻輳制御とフロー制御についての話
  • HTTPとHTTPSの違い
  • 仲介ハイジャックの原則かどうかを知るために、
  • どのようなHTTPプロトコル形式、いくつかの方法、機能
  • 知っているブロックをチャンク?に導入
  • ときん。ContentLengthそれがどんなものかが存在チャンク
  • どの段階でセミジョイン
  • スリーウェイハンドシェイクは4ウェイハンドシェイクプロセスを詳細に、より優れた詳細な
  • libevent構造、内部実装
  • 信頼性は、TCPに反映されている場合
  • ARPプロトコルのワークフロー
  • ET及びLTのepollモード
  • はじめにスライディングウィンドウ
  • ポインタと参照との間の差
  • ステージは3ウェイハンドシェイクで何が起こるかを受け入れます
  • バッファと受信との間の差は、UDPのTCPバッファと送信します
  • ロングとショートの接続コネクション間のHTTPの違い
  • UDPパケット長
  • URLの訪問を経験するプロセス
  • 注文のうち、パケットが処理されますか?
  • 以降1000年、1000年のデータを送信し、次の配列はどのくらい?
  • シン失われた場合、何回再送

TCP / IP関連の推薦図書:「TCP /コメント:1」
Pythonライブラリ、scapy / dpktの印象を深めるために使用することができますWiresharkのパケットキャプチャツールに精通しています。

データの構造

  • 紛争を扱う方法のハッシュ
  • バイナリ検索とその亜種
  • 配列とリンクリストの違い
  • ジャンプテーブルを理解するために使用されるデータ構造は、Redisの?
  • 利点は何があるよりバランスの取れたバイナリツリーよりも赤黒されている木を
  • バイナリツリー、B +木、ハッシュ、バイナリ検索ツリー差
  • 赤黒木の性質についての話
  • ソート時間の複雑さの木のすべての種類、
  • データベースのインデックス作成、トランザクション、トランザクションレベル
  • 問題が発生するかを考慮せずにトランザクションの分離
  • トランザクション分離レベル
  • タイプインデックス
  • ACオートマトンの時間複雑

データ構造ブック「のデータ構造への旅。」

データベース関連

  • 検索をスピードアップするには?

  • プラス、高速のインデックス?

  • データベースインデックスの基礎となる構造

  • MySQLとmemcacheの違い

  • MySQLの一般的な3つのストレージエンジン

  • インデックスとハッシュの間にMySQLのB + Treeインデックスの違いは?

  • 大きく異なるとハッシュインデックスB +ツリーインデックスは、次のとおりです。

  • 非リレーショナルデータベースとリレーショナルデータベースの違い、比較優位?

  • 一般的なMySQLのクエリの最適化

MySQLの本の勧告:「になります知っている必要がありますmysqlの、」「ハイパフォーマンスMySQLの」、「mysql45ストレス」

オペレーティングシステム

  • プロセスとスレッドの違い
  • マルチプロセス及びマルチスレッド差、アプリケーションシナリオ
  • 差変数揮発性原子と
  • procファイルシステム
  • 通常のスピンロックとロックの違い
  • 仮想記憶
  • メモリ配布プロセス
  • なぜ、システムによって自動的にスタックメモリの割り当てと解放
  • デーモンを作成する方法
  • コミュニケーションやプロセス、アプリケーションのシナリオとの違い
  • 条件をデッドロックとリリース
  • プロセスのスケジューリング
  • コンパイラ接続の理解
  • 共有メモリの原則
  • 対処方法をどのようなゾンビプロセスであります
  • スピンロックは、単一および複数のCPUでCPUを使用しました
  • ユーザーモードとカーネルモード

オペレーティングシステムは、図書推奨:「Linuxカーネルの設計と実装」「オペレーティングシステムの深い理解を」、

Linuxの基礎とアプリケーション・プログラミング

  • プロセス開いているファイルを表示する方法

  • nmおよびlddはコマンドを紹介

  • チェックメモリ、ポート、IOトラフィック、読み取りと書き込みの速度にシェルコマンド

  • awkのgrepの特定のアプリケーション

  • ディレクトリのハードリンクを使用することができ、ハードリンクとソフトの接続、

  • iptableのtcpdumpトップのnetstat共通のコマンド

  • メイクファイル(紹介CMAKE)を導入

  • すべてのgdbのスタックトラバーサルを見ます

  • GDBビューshared_ptrの

    コンテンツを指します

  • どのようGDBはマルチプロセス、マルチスレッドのデバッグ

  • g ++およびGCCコンパイラの違い

  • どのようにデバッグにデッドロック

  • 、GDBデバッグコアファイルコアファイルとは何ですか

  • 、猫10グラムを何が起こるか、ファイルをファイル10Gの読み方

Linuxの基本的なコマンドは、本を推奨:「Linuxのような研究に関して、」
Linuxのアプリケーションは、本を推奨プログラミング:Linuxのマルチスレッドサーバー側のプログラミング「「コア技術と実践のアプリケーションのバックエンドの開発」、」「高性能Linuxサーバプログラミング」の「Linuxのプログラミング環境を:アプリケーションから「UNIXのプログラミング環境を高度な"」カーネルに
補足情報:gdbのマニュアルとのmakefile詳細

多数の問題

  • QQ 200億が、実際にはわずか25万人のユーザーは、重複したQQを見つけます
  • 25億QQは、多くのメモリを占有し
  • 1から100000000とシングルスレッドとマルチスレッドに対処する方法を、すべての素数(計算集約型タスク)を見つけるために計算
  • 1 Gのファイル書かれた手順、BのマシンにマシンAから送信され、どのように髪?
  • ほとんどの繰り返し行を取得するために100Gのテキスト、またはライン80Kあたり80の文字、複数のマシンを示唆し、マルチプロセス、マルチスレッド、。どのように多くのポイントについてのマシンごとに算出したマシンのメモリ8G、?100Gはそれのテキストを読むことができますか?トップ10のテキスト繰り返し率を探します
  • 三私はハッシュテーブルで言った最初の時間は、彼は順序が大きすぎると、スペースの複雑さが低い、共通部品を見つけるために、シーケンスを命じ、私は彼が3の順序を見つけ、シーケンスに頼ま、バイナリ検索を言っ時間複雑。(N * logN個* logN個の時間複雑)
  • 100WURL、どのように保存します
  • 10台のサーバ、100ワットのユーザは、負荷分散する方法を、どのように我々は、サーバーがハングアップ持つようになっています
  • 10000のデータ最小の100を見つけるには?時間複雑?
  • シーンの質問:サーバーのQQ QQの番号は、今や数のQQは、ログインカウントする必要があるレコードを、ものになるかどうかがやるのログイン、ファイル限り、ログオンしているユーザー節約?(私は小さなファイルでパーティションをお話しましょう、彼はこれに加えて、私はビット配列は、彼がどのくらいのメモリを尋ねたと言いました?)

多くの問題は、通常の日常ハッシュ、分割統治、ブルーム、ビットマップであります

細切りアルゴリズム

  • リストリング解析を持っています
  • シングルトンの実装
  • 文字列に単語の数を決定します
  • 進化アルゴリズム
  • カエルのジャンプ階段
  • 一般的に使用されるソート(高速書き込み放電と放電マージ)
  • リバースリスト
  • 二つのリストは、共通ノードを見つけます
  • 検索最長の文字列が繰り返されることはありませんストリング
  • LRU
  • 手書きのコードは、ツリーの深さを必要と
  • 手書きの生産者と消費者
  • プログラミング文字列クラス
  • 二つの配列A、B、A Bは、いくつかのシークBAを有します。
  • 文字列入力、出力の完全な配列
  • どのように多くの完全なバイナリツリーノードの統計
  • 達成のmemcpy

「オファーの安全性を証明するために、」アルゴリズムの本勧告を学習
leetcodeは、ないより、罰金はいくつかの質問である列の練習を分割しました。

おすすめ

転載: www.cnblogs.com/edge0-0/p/12667534.html