Java プログラマーとして、あなたは常にビジネス開発に行き詰まり、システム開発からバグ修正まで、毎日コードを入力することに忙しく、自分が全能であると感じています。しかし、たまたまの集まりで、一緒にデビューした同級生がすでに年収50万あるのに金欠だという話を聞きました。したがって、新しい機会に目を向け、新しいプラットフォームを見つけて、うまく開発したいとも考えています。
しかし、面接中に、笑顔の面接官が馴染みのない Java の質問をすると、親しみを感じるだけで、要点に答えることはできません。たとえば、HashMap の動作原理や volatile の使用シナリオなどです。
このとき、自分の能力を疑い、なぜ最初にしっかり復習しなかったのかと嫌になるかもしれません。
この新しいバージョンのドキュメントは、1 週間にわたって Github にアップロードされ、30,000 以上のスターを獲得しました。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 の違い
-
ハッシュマップとハッシュテーブルの違い
-
コレクションのパッケージ構造、コレクションとの違い
-
汎用共通機能(追加予定)
-
リスト、セット、マップの違いについて話す
-
Array と ArrayList の違いは何ですか?
-
マップの特徴は何ですか
-
コレクションは Java.util パッケージに保存され、主にいくつかのインターフェイスがあります。
-
リストインターフェイスとは何ですか
-
ArrayList (配列) について話します。
ドキュメントには詳細が多すぎるため、知識ポイントの一部の章のみが大まかな紹介として編集されており、各章の小さなノードにはより詳細な内容が記載されています。以下は、いくつかの章をまとめたカタログです。カタログでは紙面の都合上、詳細な解説を一つ一つ記載することはできません。記事の最後には、以下の章の詳細な知識解説がすべて掲載されています。
Java例外
-
Java の 2 種類の例外とは何ですか?
-
例外処理メカニズムはいくつありますか?
-
例外をカスタマイズする方法
-
try catch ようやく、try に return がありますが、finally はまだ実行されていますか?
-
例外とエラーのパッケージ構造
-
トウとトウの違い
-
エラーと例外の違いは何ですか?
-
エラーと例外の違いは何ですか
Java の IO と NIO
-
JavaのIOストリーム?
-
Java IOとNIOの違い
-
一般的に使用される io クラスは何ですか
-
バイトストリームと文字ストリームの違い
-
ブロッキング IO モデル
-
ノンブロッキングIOモデル
-
多重化IOモデル
-
信号駆動型 IO モデル
-
非同期IOモデル
-
ジャワニオ
Java リフレクション
-
new を使用してオブジェクトを作成する以外に、オブジェクトの作成にどのような方法を使用できますか?
-
Java リフレクションを通じてオブジェクトを作成するのと、new を通じてオブジェクトを作成する方が効率的ですか?
-
Javaリフレクションの役割
-
反射メカニズムはどこで使用されますか?
-
リフレクションの実装:
-
Java リフレクションを実装するクラス:
-
反映メカニズムの長所と短所:
-
Java リフレクション API
-
リフレクションの使用手順(クラスオブジェクトの取得、オブジェクトメソッドの呼び出し)
-
Class オブジェクトを取得するにはいくつかの方法があります
-
リフレクションを使用してオブジェクト インスタンスを動的に作成する
Java シリアル化
-
Java シリアル化とは何ですか? Java シリアル化を実現するにはどうすればよいですか?
-
オブジェクトとその状態をメモリまたはディスクに保存 (永続化)
-
シリアル化されたオブジェクトはバイト配列として永続化されます。静的メンバーは永続化されません。
-
ユーザーリモートオブジェクト転送をシリアル化する
-
Serializable はシリアル化を実装します
-
writeObject および readObject のカスタムシリアル化戦略
-
シリアル化されたID
-
シリアル化では静的変数は保存されません
-
Transient キーワードは、変数がファイルにシリアル化されるのを防ぎます。
-
シリアル化 (ディープ クローン 1 で実装)
マルチスレッドと同時実行
JAVA 同時実行性ナレッジベース
-
Java でマルチスレッドを実装するにはいくつかの方法があります
-
Threadクラスを継承する
-
Runnable インターフェイスを実装します。
-
ExecutorService、Callable、Future には戻り値スレッドがあります
-
スレッドプールに基づく
-
4つのスレッドプール
-
実行中のスレッドを停止する方法
-
Notice() と 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+ ツリー)
-
TokiDB (データ付きフラクタル ツリー ノード)
-
メモリー
-
データベースエンジンとは何ですか
-
InnoDB と MyISAM の違い
-
索引
-
一般的なインデックス作成の原則は次のとおりです。
-
データベースの 3 つの標準形式は何ですか?
-
第一正規形 (第一 NF - 列は細分化されません)
レディス
-
リディスとは何ですか?
-
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 は冗長メカニズムをどのように実装しますか?
モンゴDB
-
モンゴデータベースとは何ですか?
-
mongodbの特徴は何ですか?
-
NoSQL データベースとは何ですか? NoSQL と RDBMS の違いは何ですか? NoSQL データベースを使用する理由と使用しない理由は何ですか? NoSQL データベースの利点について教えてください。
-
NoSQL データベースにはどのような種類がありますか?
-
MySQL と MongoDB の最も基本的な違いは何ですか?
-
MongoDB、CouchDB、CouchBase をどのように比較しますか?
-
MongoDB が最高の NoSQL データベースである理由は何ですか?
-
エントリが不完全な場合(たとえば、途中でクラッシュした場合)、ジャーナルの再生に問題が発生しますか?
-
MongoDB におけるアナライザーの役割は何ですか?
-
ネームスペースとは何ですか?
春
-
Spring Framework のさまざまなバージョンの主な機能は何ですか?
-
Springフレームワークとは何ですか?
-
Spring Framework の利点を挙げてください。
-
Spring Framework のさまざまな機能は何ですか?
-
Spring Framework にはモジュールがいくつあり、それらは何ですか?
-
Spring 構成ファイルとは何ですか?
-
Spring アプリケーションのさまざまなコンポーネントは何ですか?
-
Springの使い方にはどのようなものがあるのでしょうか?
-
Spring IOC コンテナとは何ですか?
-
依存関係の注入とは何ですか?
スプリングブーツ
-
スプリングブートとは何ですか?
-
Spring Boot を使用する理由
-
Spring Boot の利点は何ですか?
-
Spring Boot のコア アノテーションはどれですか? 主にどの注釈で構成されていますか?
-
Spring Bootを実行するにはどのような方法がありますか
-
Spring Boot のスターターを理解するにはどうすればよいですか?
-
Spring Boot の起動時に特定のコードを実行するにはどうすればよいですか?
-
Spring Boot を実行するにはスタンドアロン コンテナーが必要ですか?
-
Spring Boot のモニターとは何ですか?
-
Spring Boot で例外処理を実装するにはどうすればよいですか?
春の雲
-
スプリングクラウドとは何ですか?
-
Spring Cloud を使用する利点は何ですか?
-
サービスの登録と検出とは何を意味しますか? Spring Cloud はそれをどのように実装しますか?
-
ロードバランシングの意味は何ですか?
-
ヒストリックスとは何ですか?耐障害性はどのように実現されるのでしょうか?
-
Hystrix サーキットブレーカーとは何ですか? 必要ですか?
-
Netflix フェイクとは何ですか? その利点は何ですか?
-
Springクラウドバスとは何ですか?必要ですか?
-
マイクロサービスとは
-
サービスサーキットブレーカーとは何ですか? サービスの低下とは何ですか
ラビットMQ
-
ウサギmqとは何ですか
-
Rabbitmq を使用する理由
-
Rabbitmq を使用したシナリオ
-
メッセージが RabbitMQ に正しく送信されることを確認するにはどうすればよいですか? メッセージの受信者がメッセージを確実に消費するようにするにはどうすればよいでしょうか?
-
メッセージの繰り返しの配信や消費を避けるにはどうすればよいでしょうか?
-
メッセージはどのトランスポートに基づいていますか?
-
メッセージはどのように配布されるのでしょうか?
-
メッセージはどのようにルーティングされるのでしょうか?
-
メッセージが失われないようにするにはどうすればよいでしょうか?
-
RabbitMQ を使用する利点は何ですか?
ダボ
-
ダボを使用する理由
-
Dubbo の全体的なアーキテクチャ設計の層は何ですか?
-
デフォルトではどのような通信フレームワークが使用されますか?また、代替手段はありますか?
-
サービスコールはブロックされていますか?
-
一般的にどのようなレジストリが使用されますか? 別のオプションはありますか?
-
デフォルトではどのシリアル化フレームワークが使用されますか?他に何を知っていますか?
-
サービスプロバイダーが失敗提案を実行できる原則は何ですか?
-
サービス開始が古いバージョンに影響を与えないのはなぜですか?
-
サービス呼び出しチェーンが長すぎる問題を解決するにはどうすればよいですか?
-
コア構成について教えてください。
マイバティス
-
マイバティスとは何ですか?
-
マイベイトのメリット
-
MyBatis フレームワークの欠点
-
MyBatis フレームワークが適用される場面
-
MyBatis は Hibernate とどう違うのですか?
-
#{} と ${} の違いは何ですか?
-
エンティティクラスの属性名がテーブルのフィールド名と異なる場合はどうすればよいですか?
-
ファジークエリのようなステートメントを記述するにはどうすればよいですか?
-
通常、Xml マッピング ファイルには、それに対応する Dao インターフェイスが記述されます。この Dao インターフェイスの動作原理は何ですか? パラメーターが異なる場合、Dao インターフェースのメソッドをオーバーロードできますか?
-
自動生成された (主) キーの値を取得するにはどうすればよいですか?
動物園の飼育員
-
ズーキーパーとは何ですか?
-
Zookeeper は分散一貫性特性をどのように保証しますか?
-
ZooKeeper は何を提供しますか?
-
Zookeeper ファイル システム
-
ZABプロトコル?
-
4種類のデータノード Znode
-
Zookeeper Watcher メカニズム -- データ変更通知
-
クライアントはウォッチャーの実装を登録します
-
サーバー側処理 Watcher実装
-
クライアント コールバック ウォッチャー
データ構造
-
スタック
-
列
-
リンクリスト (リンク)
-
ハッシュ表
-
二分木を並べ替える
-
プレフィックスツリー
-
赤黒い木
-
B-TREE
-
ビットマップ
エラスティックサーチ
-
elasticsearch についてどのくらい知っていますか。会社の es クラスター アーキテクチャ、インデックス データ サイズ、フラグメントの数、いくつかのチューニング方法について話してください。
-
elasticsearchの逆インデックスとは何ですか
-
Elasticsearch インデックス データの詳細な方法、チューニング、デプロイ方法
-
elasticsearch がマスター選挙を実装する方法
-
Elasticsearch のドキュメントのインデックス作成プロセスを詳細に説明する
-
Elasticsearch検索のプロセスを詳しく説明してください。
-
Elasticsearch をデプロイする場合の Linux 設定の最適化方法は何ですか
-
lucenceの内部構造はどうなっているのでしょうか?
-
Elasticsearch はマスター選出をどのように実現しますか?
-
Elasticsearch のノード (たとえば、合計 20 個) のうち、10 個がマスターを選択し、残りの 10 個が別のマスターを選択する場合、どうすればよいですか?
カフカ
-
カフカとは
-
パーティションのデータ ファイル (オフセット、MessageSize、データ)
-
データファイルセグメンテーションセグメント(シーケンシャル読み取りおよび書き込み、セグメントコマンド、バイナリ検索)
-
負荷分散 (パーティションはさまざまなブローカーに均等に分散されます)
-
一括送信
-
圧縮 (GZIP または Snappy)
-
消費者向けデザイン
-
消費者グループ
-
トピックのリストを取得する方法
-
プロデューサとコンシューマのコマンドラインは何ですか?
マイクロサービス
-
マイクロサービス アーキテクチャの利点は何ですか?
-
マイクロサービスの特徴は何ですか?
-
マイクロサービスを設計するのに最適な時期はいつですか?
-
マイクロサービス アーキテクチャはどのように機能するのでしょうか?
-
マイクロサービス アーキテクチャの長所と短所は何ですか?
-
モノリシック、SOA、マイクロサービス アーキテクチャの違いは何ですか?
-
マイクロサービス アーキテクチャを使用する場合、どのような課題に直面しますか?
-
SOA とマイクロサービス アーキテクチャの主な違いは何ですか?
-
マイクロサービスの特徴は何ですか?
Linux
-
絶対パスにはどのような記号が使われますか? カレントディレクトリと上位ディレクトリとは何ですか?メインカタログは何ですか?カタログを切り替えるにはどのような順序が使用されますか?
-
現在のプロセスを確認するにはどうすればよいですか? 出口を実行するにはどうすればよいですか? 現在のパスを確認するにはどうすればよいですか?
-
画面をクリアするにはどうすればよいですか? 現在のコマンドを終了するにはどうすればよいですか? 睡眠をどのように実装するか? いつ確認するか
-
Ls コマンドは何をするのでしょうか? どのようなパラメータを取得できますか?その違いは何ですか?
-
ファイルを表示するコマンドは何ですか
-
よく使用される Linux コマンドをいくつか挙げます
-
普段どのようにログを確認していますか?
-
ソフト リンク (ショートカット) とハード リンク コマンドを作成する
-
ディレクトリの作成にはどのようなコマンドを使用しますか? ファイルの作成にはどのようなコマンドが使用されますか? ファイルをコピーするにはどのような順序を使用しますか?
-
ファイルの内容を表示するにはどのようなコマンドが利用できますか?
面接、難しいですか?最終的な結果は良いのか悪いのか?面接官のバックグラウンド(オーラ+スキル)、メンタルや認知力、コミュニケーションスキルによって異なります。また、一部の主流の大規模インターネット企業の面接 (Alibaba、JD.com、Meituan、Didi) では、面接官の評価と肯定を得るために、面接中に自分の能力を示すことが求められます。
そして、プログラマーは仕事に応募する際に何層もの面接を受ける必要があります。ことわざにあるように、ナイフを研ぐことは誤って薪を切ることはありません。面接前にしっかりと準備をしておくことは、面接中の面接官の質問や緊急事態にうまく対処するのに役立ちます。