このGithubスターの50K +フェアリーノートは、Javaインタビューの質問の90%以上をカバーしており、無敵になります

序文

Javaプログラマーとして、あなたは常にビジネス開発にとらわれています。システム開発からバグ修正まで、毎日コードの入力に忙しくしています。あなたは全能であるように感じます。ところが、たまにパーティーでデビューした同級生の年俸が50万人と聞いていたのですが、恥ずかしがり屋でした。したがって、新しい機会を見つけ、新しいプラットフォームを見つけ、うまく開発することも必要です。

しかし、インタビュー中に、笑顔のインタビュアーがJavaの質問をしたとき、あなたはこれ以上馴染みがないので、慣れていると感じましたが、答えることができませんでした。たとえば、HashMapの動作原理、またはvolatileの使用シナリオ。

現時点では、自分の能力を疑って、よくレビューしなかった理由を嫌うかもしれません。

この新しいバージョンのドキュメントはGithubに1週間アップロードされ、5万以上のJavaコアインタビュースキル(このパラメーター、品質についてこれ以上言う必要はありません)を取得しました。これには、Javaの基本、Javaコレクションが含まれます。 、JavaWeb、Java例外、OOP、IOおよびNIO、リフレクション、注釈、マルチスレッド、JVM、MySQL、MongoDB、Springファミリーバケット、コンピューターネットワーク、分散アーキテクチャ、Redis、Linux、git、フロントエンド、アルゴリズムおよびデータ構造、MyBatis 、RocketMQ、Netty、Dubbo、Zookeeper、分散キャッシュ、データ構造などはコンテンツが非常に豊富で、多くの人々が一次インターネット企業からのオファーを獲得するのに役立っています。私はあなたと共有させてください。

JavaOOP

  • B / Sアーキテクチャとは何ですか?C / Sアーキテクチャとは
  • Javaにはどのような開発プラットフォームがありますか?
  • JDKとは何ですか?JREとは何ですか?
  • Java言語の特徴は何ですか
  • オブジェクト指向とプロセス指向の違い
  • データ構造とは何ですか?
  • Javaのデータ構造は何ですか?
  • OOPとは何ですか?
  • クラスとオブジェクトの関係は?
  • Javaにはいくつかのデータ型があります

Javaコレクション/ジェネリック

  • ArrayListとlinkedListの違い
  • HashMapとHashTableの違い
  • コレクションパッケージの構造、コレクションとの違い
  • ジェネリックの共通機能(追加予定)
  • リスト、セット、マップの違いについて話す
  • ArrayとArrayListの違いは何ですか?
  • マップの特徴は何ですか
  • コレクションはJava.utilパッケージに保存され、主にいくつかのインターフェースがあります
  • リストインターフェイスとは
  • ArrayList(配列)について話す

 

Java例外

  • Javaの2種類の例外は何ですか?
  • 例外処理メカニズムはいくつありますか?
  • 例外をカスタマイズする方法
  • 最後にキャッチしてみて、トライでリターンがあり、ついに実行されますか?
  • ExcptionおよびErrorパケット構造
  • ThowとThorwsの違い
  • エラーと例外の違いは何ですか?
  • エラーと例外の違いは何ですか

JavaのIOとNIO

  • JavaのIOフロー?
  • JavaIOとNIOの違い
  • 一般的に使用されるioクラスは何ですか
  • バイトストリームと文字ストリームの違い
  • ブロッキングIOモデル
  • ノンブロッキングIOモデル
  • 多重化IOモデル
  • 信号駆動型IOモデル
  • 非同期IOモデル
  • JAVA NIO

Javaリフレクション

  • newを使用してオブジェクトを作成することに加えて、他にどのような方法を使用してオブジェクトを作成できますか?
  • Javaリフレクションを使用してオブジェクトを作成するのは効率的ですか、それとも新規を使用してオブジェクトを作成するのは効率的ですか?
  • Javaリフレクションの役割
  • 反射メカニズムはどこで使用されますか?
  • リフレクションの実装:
  • Javaリフレクションを実装するクラス:
  • 反射メカニズムの長所と短所:
  • JavaリフレクションAPI
  • リフレクションを使用する手順(クラスオブジェクトを取得し、オブジェクトメソッドを呼び出す)
  • Classオブジェクトを取得する方法はいくつかあります
  • リフレクションを使用してオブジェクトインスタンスを動的に作成する

Javaシリアル化

  • Javaシリアル化とは何ですか?Javaシリアル化を実装する方法は?
  • (永続的な)オブジェクトとその状態をメモリまたはディスクに保存する
  • シリアル化されたオブジェクトはバイト配列として保持されます-静的メンバーは保持されません
  • シリアル化されたユーザーリモートオブジェクト転送
  • シリアル化可能シリアル化を実現
  • writeObjectおよびreadObjectカスタムシリアル化戦略
  • シリアル化されたID
  • シリアル化は静的変数を保存しません
  • Transientキーワードは、変数がファイルにシリアル化されるのを防ぎます
  • シリアル化(ディープクローン1で実装)

マルチスレッドと並行性

JAVA並行知識ベース

  • Javaでマルチスレッドを実装する方法はいくつかあります
  • Threadクラスを継承します
  • Runnableインターフェースを実装します。
  • ExecutorService、Callable、Futureには戻り値スレッドがあります
  • スレッドプールベースのアプローチ
  • 4つのスレッドプール
  • 実行中のスレッドを停止する方法
  • notify()とnotifyAll()の違いは何ですか?
  • sleep()とwait()の違いは何ですか?
  • 揮発性とは何ですか?注文は保証されますか?

JVM

  • Javaでメモリリークが発生しますか?簡単に説明してください。
  • 64ビットJVMでは、intの長さが大部分ですか?
  • シリアルGCとパラレルGCの違いは何ですか?
  • 32ビットおよび64ビットのJVMでは、int型変数の長さが大部分ですか?
  • JavaのWeakReferenceとSoftReferenceの違いは何ですか?
  • JVMオプション-XX:+ UseCompressedOopsは何をしますか?使用する理由
  • Javaプログラムを使用してJVMが32ビットか64ビットかを判断するにはどうすればよいですか?
  • 32ビットJVMと64ビットJVMの最大ヒープメモリはいくつですか?
  • JRE、JDK、JVM、JITの違いは何ですか?
  • JavaヒープスペースとGCについて説明してください。

Mysql

  • データベースストレージエンジン
  • InnoDB(B +ツリー)
  • TokuDB(フラクタルツリー-データ付きノード)
  • 記憶
  • データベースエンジンとは
  • InnoDBとMyISAMの違い
  • インデックス
  • 一般的なインデックス作成の原則は次のとおりです。
  • データベースの3つのパラダイムは何ですか
  • 第一正規形(最初のNF列は細分化されていません)

Redis

  • Redisとは何ですか?
  • Redisは他のKey-Valueストアとどう違うのですか?
  • データ型をRedisしますか?
  • Redisを使用する利点は何ですか?
  • Memcachedに対するRedisの利点は何ですか?
  • MemcacheとRedisの違いは何ですか?
  • Redisはシングルプロセスシングルスレッドですか?
  • 文字列型スマートストレージの最大容量はどれくらいですか?
  • Redis永続化メカニズム
  • キャッシュアバランシェ、キャッシュペネトレーション、キャッシュウォームアップ、キャッシュ更新、キャッシュ劣化など。

Memcached

  • Memcachedとは何ですか?それは何をしますか?
  • エンタープライズクラスターアーキテクチャでのmemcachedサービスのアプリケーションシナリオは何ですか?
  • Memcachedサービスの分散クラスターを実現するにはどうすればよいですか?
  • Memcachedサービスの機能と動作原理は何ですか?
  • Memcachedメモリ管理メカニズムの原理を簡単に説明してください。
  • memcachedはどのように機能しますか?
  • memcachedの最大の利点は何ですか?
  • memcachedおよびMySQLクエリ
  • サーバーのローカルキャッシュ(PHP APC、mmapファイルなど)と比較したmemcachedの長所と短所は何ですか?
  • memcachedのキャッシュメカニズムとは何ですか?
  • memcachedはどのように冗長メカニズムを実装しますか?

MongoDB

  • mongodbとは何ですか?
  • mongodbの特徴は何ですか?
  • NoSQLデータベースとはどういう意味ですか?NoSQLとRDBMSの直接の違いは何ですか?なぜNoSQLデータベースを使用するのか使用しないのですか?NoSQLデータベースの利点について話してください。
  • どのような種類のNoSQLデータベースがありますか?
  • MySQLとMongoDBの最も基本的な違いは何ですか?
  • MongoDB、CouchDB、CouchBaseをどのように比較しますか?
  • MongoDBが最高のNoSQLデータベースである理由は何ですか?
  • エントリが不完全な場合(たとえば、途中で障害が発生した場合)、ジャーナルの再生で問題が発生しますか?
  • MongoDBでのアナライザーの役割は何ですか?
  • 名前空間とは何ですか?

  • Spring Frameworkのさまざまなバージョンの主な機能は何ですか?
  • Spring Frameworkとは何ですか?
  • SpringFrameworkの利点を挙げてください。
  • Spring Frameworkのさまざまな機能は何ですか?
  • Spring Frameworkにはいくつのモジュールがあり、それらは何ですか?
  • Spring構成ファイルとは何ですか?
  • Springアプリケーションのさまざまなコンポーネントは何ですか?
  • Springの使い方は何ですか?
  • Spring IOCコンテナとは何ですか?
  • 依存性注入とは何ですか?

スプリングブーツ

  • Spring Bootとは何ですか?
  • SpringBootを使用する理由
  • Spring Bootの利点は何ですか?
  • Spring Bootのコアアノテーションは何ですか?主にどの注釈で構成されていますか?
  • SpringBootを実行する方法は何ですか
  • Spring Bootのスターターを理解する方法は?
  • Spring Bootの起動時に特定のコードを実行するにはどうすればよいですか?
  • Spring Bootを実行するには別のコンテナーが必要ですか?
  • Spring Bootのモニターは何ですか?
  • Spring Bootを使用して例外処理を実装するにはどうすればよいですか?

春の雲

  • Spring Cloudとは何ですか?
  • Spring Cloudを使用する利点は何ですか?
  • サービスの登録と検出とはどういう意味ですか?SpringCloudを実現する方法は?
  • 負荷分散の重要性は何ですか?
  • Hystrixとは何ですか?どのようにしてフォールトトレランスを実現しますか?
  • Hystrixサーキットブレーカーとは何ですか?必要ですか?
  • Netflix Feignとは何ですか?その利点は何ですか?
  • Spring Cloud Busとは何ですか?必要ですか?
  • マイクロサービスとは
  • サービスサーキットブレーカーとは何ですか?サービスの低下とは

RabbitMQ

  • rabbitmqとは
  • なぜrabbitmqを使用するのか
  • rabbitmqを使用するシーン
  • メッセージがRabbitMQに正しく送信されるようにするにはどうすればよいですか?メッセージの受信者がメッセージを確実に消費するようにするにはどうすればよいですか?
  • メッセージの繰り返し配信または繰り返し消費を回避するにはどうすればよいですか?
  • メッセージはどの送信に基づいていますか?
  • メッセージはどのように配信されますか?
  • メッセージをルーティングする方法は?
  • メッセージが失われないようにするにはどうすればよいですか?
  • RabbitMQを使用する利点は何ですか?

ダボ

  • なぜダボを使うのですか?
  • ダボの全体的なアーキテクチャ設計のレイヤーは何ですか?
  • デフォルトで使用される通信フレームワークは何ですか?他のオプションはありますか?
  • サービスコールはブロックされていますか?
  • 一般的に使用されるレジストリは何ですか?他のオプションはありますか?
  • デフォルトで使用されるシリアル化フレームワークと、他に何を知っていますか?
  • サービスプロバイダーが障害提案を実現できる原則は何ですか?
  • サービスの起動が古いバージョンに影響しないのはなぜですか?
  • サービスコールチェーンが長すぎるという問題を解決するにはどうすればよいですか?
  • コア構成は何ですか?

MyBatis

  • Mybatisとは何ですか?
  • Mybaitsの利点
  • MyBatisフレームワークのデメリット
  • MyBatisフレーム該当する機会
  • MyBatisとHibernateの違いは何ですか?
  • {}と$ {}の違いは何ですか?

  • エンティティクラスの属性名がテーブルのフィールド名と異なる場合はどうすればよいですか?
  • ファジークエリでlikeステートメントを書く方法は?
  • 通常、Xmlマッピングファイルにはそれに対応するDaoインターフェイスがあります。このDaoインターフェイスの動作原理は何ですか?Daoインターフェースのメソッドのパラメーターが異なる場合、メソッドをオーバーロードできますか?
  • 自動生成された(主)キー値を取得するにはどうすればよいですか?

ZooKeeper

  • Zookeeperとは何ですか?
  • Zookeeperはどのようにして分散整合性特性を保証しますか?
  • ZooKeeperは何を提供しますか?
  • Zookeeperファイルシステム
  • ZAB合意?
  • 4種類のデータノードZnode
  • ZookeeperWatcherメカニズム-データ変更通知
  • クライアント登録ウォッチャーの実装
  • サーバー側の処理ウォッチャーの実装
  • クライアントコールバックウォッチャー

データ構造

  • スタック
  • キュー
  • リンク
  • ハッシュ表
  • ソートされた二分木
  • プレフィックスツリー
  • 赤黒木
  • B-TREE
  • ビットマップ

Elasticsearch

  • elasticsearchは、会社のesクラスターアーキテクチャ、インデックスデータサイズ、シャードの数、およびいくつかのチューニング方法についてどの程度知っていますか。
  • Elasticsearchの転置インデックスとは何ですか
  • Elasticsearchインデックスにデータが多すぎる場合の対処方法、調整およびデプロイの方法
  • Elasticsearchがマスター選挙を実装する方法
  • Elasticsearchのインデックス作成ドキュメントのプロセスを詳細に説明する
  • Elasticsearch検索のプロセスを詳しく説明してください。
  • Elasticsearchがデプロイされている場合、Linux設定の最適化方法は何ですか
  • 透明度の内部構造は何ですか?
  • Elasticsearchはマスター選挙をどのように実装しますか?
  • Elasticsearchのノード(たとえば、合計20個)のうち、10個が1つのマスターを選択し、他の10個が別のマスターを選択します。どうすればよいですか?

カフカ

  • カフカとは
  • パーティションのデータファイル(オフセット、メッセージサイズ、データ)
  • データファイルのセグメンテーション(シーケンシャル読み取りおよび書き込み、セグメントコマンド、バイナリ検索)
  • 負荷分散(パーティションは異なるブローカーに均等に分散されます)
  • バッチ送信
  • 圧縮(GZIPまたはSnappy)
  • 消費者デザイン
  • 消費者グループ
  • トピックのリストを取得する方法
  • 生産者と消費者のためのコマンドラインは何ですか?

マイクロサービス

  • マイクロサービスアーキテクチャの利点は何ですか?
  • マイクロサービスの特徴は何ですか?
  • マイクロサービスを設計するのに最適な時期はいつですか?
  • マイクロサービスアーキテクチャはどのように機能しますか?
  • マイクロサービスアーキテクチャの長所と短所は何ですか?
  • モノリシック、SOAとマイクロサービスアーキテクチャの違いは何ですか?
  • マイクロサービスアーキテクチャを使用するときに直面する課題は何ですか?
  • SOAとマイクロサービスアーキテクチャの主な違いは何ですか?
  • マイクロサービスの特徴は何ですか?

Linux

  • 絶対パスの記号は何ですか?現在のディレクトリと上位ディレクトリは何ですか?メインディレクトリとは何ですか?ディレクトリを切り替えるために使用されるコマンドは何ですか?
  • 現在のプロセスを確認する方法は?終了を実行する方法は?現在のパスを確認するにはどうすればよいですか?
  • 画面をクリアする方法は?現在のコマンドを終了するにはどうすればよいですか?睡眠をとるには?いつ確認するか
  • Lsコマンドはどのような機能を実行しますか?どのようなパラメータを取ることができ、違いは何ですか?
  • ファイルに含まれるコマンドを確認する
  • 一般的に使用されるLinuxコマンドをいくつか挙げてください
  • ログをどのように確認しますか?
  • ソフトリンク(ショートカット)とハードリンクコマンドを確立する
  • ディレクトリの作成にはどのコマンドが使用されますか?ファイルを作成するために使用されるコマンドは何ですか?ファイルをコピーするために使用されるコマンドは何ですか?
  • ファイルの内容を表示するために使用できるコマンドは何ですか?

面接は難しいですか?最終結果は良いですか悪いですか?それは、インタビュアーのバックグラウンド(オーラ+スキル)、メンタリティと認知、およびコミュニケーションスキルによって異なります。また、一部の主流の大規模インターネット企業の面接(Alibaba、JD、Meituan、Didi)では、面接官の評価と認識を得るために、面接中に自分の能力を示す必要があります。

そして、プログラマーは応募するときに面接の層を通過する必要があります。ことわざにあるように、誤って薪を切るのではなく、ナイフを研ぐこと、そして面接の準備をすることは、面接中の面接官の質問や予期しない状況に誰もがうまく対処するのに役立ちます。

スペースの制限により、PDFドキュメントの詳細情報は包括的すぎ、詳細が多すぎるため、知識ポイントの一部のみが大まかな紹介のスクリーンショットであり、各小さなノードにはより詳細なコンテンツがあります

無料の建築学習教材を入手するにはどうすればよいですか?

情報取得方法:ワンクリックトリプルリンク+コメント、VX(tkzl6666)を追加して無料でお届けします。

 

おすすめ

転載: blog.csdn.net/JavaBUGa/article/details/112138170