あなたがいくつかの主要な工場のインタビューに参加したことがあるなら、あなたは間違いなくいくつかの未解決の質問に遭遇するでしょう:
1.プログラムを作成し、Young GCを5回、Full GCを3回、YoungGCを3回トリガーするように動作させます。
2. Javaプロセスが突然消えた場合、この問題をどのようにトラブルシューティングしますか?
3. Spring Loading Beanのスニペットを提供し、特定の実行プロセスを説明しますか?
難しそうに見えますか、それともあなたが用意した「質問バンク」の質問と違うのですか?どこから始めればいいのかわからない?あなたがこのように感じるならば、それはあなたの技術がまだ練習される必要があることを意味します。
非常に多くの技術面接に直面して、あなたのスキルがテストに合格したとどのように言うことができますか?
参照回答のない質問だけがあります、あなたは降りてきて一つずつ学ぶ必要があります!
1.開会の辞
あなたの仕事の経験と責任、学校や仕事での主な仕事の内容、そして主な責任の内容を簡単に紹介してください;(あなたの情報はあなたの履歴書にはっきりと書かれています、これは主に面接官の圧力を和らげるためです)
技術的なハイライトで最も満足しているプロジェクトまたはプラットフォームを紹介し、担当する部分の技術的な詳細に焦点を当てます(主に、候補者が行ったことを明確に説明しているかどうかを調べ、行ったことの複雑さを判断します)。 )
2、Javaマルチスレッド
- スレッドプールの原則、なぜスレッドプールを作成するのですか?スレッドプールを作成する方法。
- スレッドのライフサイクル。デッドプロセスはいつ発生しますか。
- スレッドの安全性の問題、スレッドの安全性を実現する方法、スレッドの安全性を実現する方法について話します。
- スレッドプールを作成するためのコアパラメータは何ですか?スレッドプールのサイズを合理的に構成するにはどうすればよいですか?
- volatileおよびThreadLocalの使用シナリオと原則。
- ThreadLocalはいつOOMに表示されますか?どうして?
- 同期と揮発性の違い、同期されたロックの粒度、シミュレートされたデッドロックシナリオ、アトミック性と可視性。
3、JVM関連
- JVMメモリモデル、GCメカニズムおよび原理。
- GCの2つのタイプは何ですか?マイナーGCとフルGCの違いは何ですか?フルGCはいつトリガーされますか?どのアルゴリズムが使用されていますか?
- JVMにはいくつかのクラスローダーがありますが、なぜ複数あるのですか?
- 親委任メカニズムとは何ですか?いくつかの運用プロセスと親委任モデルの利点を紹介します。
- どのような状況で、親の委任モデルを破る必要がありますか。
- 一般的なJVMの調整方法は何ですか?具体的に調整できるパラメータと値はどれですか?
- JVM仮想マシンのメモリ分割、クラスローダー、ガベージコレクションアルゴリズム、ガベージコレクター、クラスファイルの構造の分析方法。
4、Java拡張
- 赤黒の木の実装原則と適用シナリオ。
- NIOとは何ですか?どのようなシーンが当てはまりますか?
- Java8に対するJava9の改善点は何ですか。
- HashMap内のデータ構造は何ですか?最下層はどのように実装されていますか?(ConcurrentHashMap、HashMap、HashTableなどの調査を拡張して、技術的な詳細の詳細な理解を調査することもできます)。
- リフレクションの使用と実現について話します。リフレクションは非常に遅いので、プロジェクトでリフレクションを使用しないようにする必要があるかどうか。
- カスタムアノテーションのシーンと実装について話します。
- ListとMap、ArraylistとLinkedList、ArrayListとVectorの違い。
ファイブ、春関連
- Spring AOPの実現原理とシナリオは?
- 春の豆の範囲とライフサイクル。
- Spring BootはSpringに対してどのような改善を行いましたか?Spring4よりSpring5でどのような改善が行われたか。
- Spring Boot Starterをカスタマイズする方法は?
- Spring IOCとは何ですか?利点は何ですか?
- SpringMVC、動的プロキシ、リフレクション、AOP原則、トランザクション分離レベル。
6、ミドルウェア
- Dubboの完全なワンタイムコールリンクの紹介。
- Dubboはいくつの負荷分散戦略をサポートしていますか?
- ダボプロバイダーサービスプロバイダーは、同時リクエストの上限を管理する必要があります。どうすればよいですか?
- Dubboは、起動時にいくつの構成方法をサポートしていますか?
- いくつかのメッセージングミドルウェア製品を知っていますか?各製品の長所と短所の紹介。
- メッセージミドルウェアはどのようにしてメッセージの一貫性を確保し、メッセージを再試行する方法を教えてください。
- SpringCloudヒューズメカニズムの概要。
- Spring CloudのDubboと比較して、Spring Cloudはどのようなシナリオで使用する必要がありますか?
7つのデータベース記事
- ロックメカニズムの概要:行ロック、テーブルロック、排他ロック、共有ロック。
- ビジネスシナリオと楽観的ロックの実装。
- トランザクションの概要、分散されたものの理解、一般的な解決策、2フェーズコミットと3フェーズコミットとは何ですか。
- MySQLレコードのbinlogには主に3つのモードが含まれていますか?各モードの長所と短所は何ですか?
- MySQLロック、悲観的ロック、楽観的ロック、排他的ロック、共有ロック、テーブルレベルのロック、行レベルのロック。
- 分散トランザクションの原則は、同期\非同期\ブロッキング\非ブロッキングの2フェーズコミットです。
- データベーストランザクション分離レベル、MySQLのデフォルト分離レベル、Springがトランザクションを実装する方法、JDBCがトランザクションを実装する方法、ネストされたトランザクション、および分散トランザクション。
- SQLの全体的な分析、実行プロセスの原則、およびSQL行の変換。
エイト、レディス
- なぜRedisはとても速いのですか?redisのマルチスレッドの問題は何ですか?
- Redisがサポートするデータ構造。
- Redisジャンプテーブルの問題。
- RedisシングルプロセスシングルスレッドRedisを高度に同時実行するにはどうすればよいですか?
- RedisはRedisをどのように使用して分散ロックを実装しますか?
- Redisは、分散ロック操作の原子性をどのように実現しますか?
9.その他
どのソースコードを見ましたか?次に、あなたが言ったソースコードに基づいていくつかの詳細な質問をしますか?(これは主に、インタビュアーがテクノロジーを研究する精神を持っているか、表面にとどまるか、いくつかのレッスンを覚えているかを調べるためです。強迫観念障害を持つ多くのインタビュアーにとって、ソースコードを読んでいない場合は、基本的に私もそうです!)
10.最後に
実際、段階的に、インタビューの前に質問をブラッシングするだけでなく、通常の蓄積も簡単です。編集者は、Java Advanced Architect’s Roadのコア知識をまとめました。これは、インタビュアーがインタビュー中に尋ねなければならない知識ポイントでもあります。この章には、基本的な知識、Javaコレクション、JVMなどの多くの知識ポイントも含まれています。スレッドの同時実行性、春の原則、マイクロサービス、NettyとRPC、Kafka、日記、デザインパターン、Javaアルゴリズム、データベース、Zookeeper、分散キャッシュ、データ構造など。
pdfドキュメントには詳細が多すぎるため、いくつかの知識ポイントがあるチャプターのみが編集されます。大まかな紹介では、各チャプターノードに詳細なコンテンツがあります。以下はチャプターリストの一部です。見出しの長さのため、カタログの詳細な説明を1つずつリストすることはできません。記事の最後に、以下のすべてのチャプターの詳細な説明があります。
JVM
- 糸
- JVMメモリ領域
- JVMランタイムメモリ
- ガベージコレクションとアルゴリズム
- JAVAの4つの参照タイプ
- GC世代別収集アルゴリズムVSパーティション収集アルゴリズム
- GCガベージコレクター
- JAVA IO / NIO
- JVMクラスのロードメカニズム
JAVAコレクション
- インターフェイスの継承と実装
- リスト
- ArrayList(配列)
- ベクトル(配列の実装、スレッドの同期)
- LinkList(リンクリスト)
- セットする
- HashSet(ハッシュテーブル)
- TreeSet(バイナリツリー)
JAVAマルチスレッド同時実行
- JAVAコンカレントナレッジベース
- JAVAスレッドの実装/作成方法
- 4種類のスレッドプール
- スレッドのライフサイクル(状態)
- スレッドを終了する4つの方法
- 睡眠と待機の違い
- 開始と実行の違い
- JAVA背景スレッド
- JAVAロック
- 基本的なスレッドメソッド4.1.11。スレッドコンテキストスイッチ
- 同期とデッドロック
- スレッドプールの原理
- JAVAブロッキングキューの原則
- CyclicBarrier、CountDownLatch、Semaphoreの使用法
- volatileキーワードの役割(可変の可視性、並べ替えの禁止)
- 2つのスレッド間でデータを共有する方法
JAVAの基本
- JAVAの異常な分類と治療
- JAVAリフレクション
- JAVA注釈
- JAVAインナークラス
- JAVAジェネリック
- JAVAシリアル化(再利用可能なJavaオブジェクトの作成)
- JAVAコピー
春の原則
- 春の特徴
- スプリングコアコンポーネント
- 春の共通モジュール
- 春のメインパッケージ
- 春の一般的な注釈
- 春のサードパーティ統合
- 春のIOCの原則
- 春のAPO原則
- 春のMVCの原則
- スプリングブーツの原理
- JPAの原則
- Mybatisキャッシュ
- Tomcatアーキテクチャ
スペースの制約により、pdfドキュメントの詳細情報は包括的すぎ、詳細が多すぎるため、知識ポイントの一部のみが大まかな紹介のスクリーンショットであり、各小さなノードにはより詳細なコンテンツがあります。困っているプログラム(元)は私のプライベートメッセージに従い、「666」と返信して無料で入手できます
マイクロサービス
- サービス登録の発見
- APIゲートウェイ
- 構成センター
- イベントスケジューリング(kafka)
- サービス追跡(スタータースルース)
- サービスヒューズ(Hystrix)
- Hystrixサーキットブレーカーメカニズム
- API管理
Netty与RPC
- ネティの原理
- ネットの高性能
- NettyRPCの実装
- キーテクノロジー
- コアプロセス
- メッセージコーデック
- コミュニケーションプロセス
- RMIの実装
分散キャッシュ
- キャッシュアバランシェ
- キャッシュの浸透
- キャッシュのウォームアップ
- キャッシュの更新
- キャッシュの劣化
インターネット
- 7層ネットワークアーキテクチャ
- TCP / IPの原則
- TCPスリーウェイハンドシェイク/ 4ウェーブハンド
- HTTPの原則
- CDNの原則
- 流通サービスシステム
- 負荷分散システム
- マネジメントシステム
ログ
- Slf4j
- Log4j
- LogBack
- ログバックの利点
- ELK
Zookeeper
- 動物園の飼育係の概念
- 動物園の飼育係の役割
- Zookeeperの動作原理(アトミックブロードキャスト)
- Znodeには4種類のディレクトリノードがあります
カフカ
- カフカのコンセプト
- Kafkaデータストレージの設計
- パーティションのデータファイル(オフセット、メッセージサイズ、データ)
- データファイルのセグメンテーション(シーケンシャル読み取りおよび書き込み、セグメントコマンド、バイナリ検索)
- データファイルインデックス(セグメントインデックス、スパースストレージ)
- プロデューサーデザイン
- 負荷分散(パーティションは異なるブローカーに均等に分散されます)
- バッチ送信
- 圧縮(GZIPまたはSnappy)
- 消費者デザイン
RabbitMQ
- RabbitMQの概念
- RabbitMQアーキテクチャ
- 交換タイプ
Hbase
- Hbaseのコンセプト
- 柱状ストレージ
- Hbaseコアコンセプト
- Hbaseコアアーキテクチャ
- Hbase書き込みロジック
- HBaseとCassandra
- MongoDB
- MongoDBのコンセプト
- MongoDBの機能
カサンドラ
- カサンドラのコンセプト
- データ・モデル
- Cassandraの一貫したハッシュと仮想ノード
- ゴシッププロトコル
- データの複製
- データ書き込みリクエストおよびコーディネーター
- データ読み取り要求とバックグラウンド修復
- データストレージ(CommitLog、MemTable、SSTable)
- セカンダリインデックス(インデックスを作成する値の概要に対してRowKeyが生成されます)
- データの読み取りと書き込み
デザインパターン
- 設計原則
- ファクトリーメソッドパターン
- 抽象的な工場パターン
- シングルトンモード
- ビルダーモード
- プロトタイプモード
- アダプターモード
- デコレータモード
- エージェンシーモデル
- 外観モード
- ブリッジモード
- コンビネーションモード
- フライウェイトモデル
- 戦略モード
- テンプレートメソッドパターン
- オブザーバーモード
- 反復モード
- 責任連鎖モデル
- コマンドモード
- メモモード
負荷分散
- レイヤー4の負荷分散とレイヤー7の負荷分散
- 負荷分散アルゴリズム/戦略
- LVS
- 生き続ける
- Nginxリバースプロキシロードバランシング
- HAProxy
データベース
- ストレージエンジン
- インデックス
- データベースの3つのパラダイム
- データベースはトランザクションです
- 保存されたプロシージャ(特定の関数のSQLステートメントのセット)
- トリガー(自動的に実行できるプログラム)
- データベース同時実行戦略
- データベースロック
- Redisに基づく分散ロック
- 分類表
- 二相コミット契約
- 3段階のコミット契約
- 柔軟な取引
- キャップ
コンセンサスアルゴリズム
- パクソス
- ザブ
- ラフト
- NWR
- ゴシップ
- 一貫性ハッシュ
- 一貫性のあるハッシュ機能
- 一貫性ハッシュの原則
JAVAアルゴリズム
- バイナリ検索
- バブルソートアルゴリズム
- 挿入ソートアルゴリズム
- クイックソートアルゴリズム
- ヒルソーティングアルゴリズム
- マージソートアルゴリズム
- バケットソートアルゴリズム
- 基本ソートアルゴリズム
- 剪定アルゴリズム
- バックトラッキングアルゴリズム
- 最短パスアルゴリズム
- 最大の配列アルゴリズム
- 最長の共通サブシーケンスアルゴリズム
- 最小スパニングツリーアルゴリズム
データ構造
- スタック
- キュー
- リンク
- ハッシュ表
- ソートされたバイナリツリー
- 赤黒の木
- B-TREE
- ビットマップ
スペースの制約により、pdfドキュメントの詳細情報は包括的すぎ、詳細が多すぎるため、知識ポイントの一部のみが大まかな紹介のスクリーンショットであり、各小さなノードにはより詳細なコンテンツがあります。困っているプログラム(元)は私のプライベートメッセージに従い、「666」と返信して無料で入手できます
無料のアーキテクチャ学習資料を入手するにはどうすればよいですか?
スペースの制約により、pdfドキュメントの詳細情報は包括的すぎ、詳細が多すぎるため、知識ポイントの一部のみが大まかな紹介のスクリーンショットであり、各小さなノードにはより詳細なコンテンツがあります。困っているプログラム(元)は私のプライベートメッセージに従い、「666」と返信して無料で入手できます