ショートークはありません、始めてください!
共通の知識ポイント
1.Javaの基本的なデータタイプとパッケージングクラス。
2.最終変更変数クラスメソッド。
3. Stringが不変であり、new String( "abc")がいくつかのオブジェクトを作成する理由。
4. String、StringBuffer、およびStringBuilderの違い。
5.静的に変更された変数、メソッド、コードブロック。
6.書き換えと再読み込みの違い。
7.インターフェースと抽象クラス。
8.リフレクション、継承、列挙、例外などの知識ポイント。
9.なぜハッシュコードとequalsメソッドを書き直すのか、そしてハッシュコードが同じで等しいかどうかは同じです。
10. JDK1.7と1.8以前の違い。
11、i++ 和 ++i;
コレクション関連
1. ArrayListの基礎となる実装、拡張プロセス、追加プロセス、Fail-Fastメカニズム。
2.ArrayListとLinkedlistおよびVectotの違い。
3.スレッドセーフリストを取得する方法。
4.CopyOnWriteArrayListはどのようにしてスレッドの安全性を実現しますか。
5. Linkedlistの基本的な実装と、LinkedListを使用してLRUを実装する方法。
6. TreeSet、HashSet、LinkedHashSetの基礎となる実装、およびそれらの違い。
7. PriorityQueue、LinkedBlockingQueue、ArrayBlockingQueueの実装と違い。
8. HashMapの基本的な実装である拡張プロセスは、しきい値に達したときに拡張されます。プットプロセス、ツリー化プロセス、負荷率の決定方法、スレッドが安全でない理由、および1.8で行われた最適化。
9. HashMapとHashTableの違い、スレッドセーフマップの取得方法。
10. ConcurrentHashMapがスレッドセーフである理由と、1.8で行われた最適化。
11.LinkedHashMapの基本的な実装とLRUの実装方法。
12.TreeMapの基礎となる実装。
13.イテレーターの実装。
JVM関連
1.ランタイムデータ領域、各領域に格納されているもの、および対話方法。
2.オブジェクトの作成からリサイクル(クラスのロードからGCまで)のプロセス全体で、これを習得するのに基本的に大きな問題はありません。
3.ヒープ内のオブジェクトに格納されているデータ、およびオブジェクトヘッダー内のデータ(通常、同期ロックのアップグレードプロセス中に要求されます)。
4.メモリ領域にリサイクル、ガベージコレクションアルゴリズム、ガベージコレクター(主にマスターCMS、G1、もちろんより良い)が必要かどうかを判断します。
5.メモリ割り当て戦略(Edenおよび旧世代での割り当て方法)、リカバリ戦略(マイナーGC、フルGC)。
6、Javaメモリモデル(Javaメモリ領域ではない)。スレッドでよく尋ねられます(volatitleの設計と実装)。
7.仮想マシンのクラス読み込みメカニズム、クラスのライフサイクル、クラスローダー(以前に尋ねられた手書きのクラスローダーを試すことができます)、親委任モデル。
8. Jvmの調整と障害処理では、以下を手動で実装できます。
マルチスレッドとロック
1.プロセスとスレッドの違い、ハードウェアに応じて作成するスレッドの最大数を決定する方法(スレッドプールを考慮する必要があります)。
2.スレッド作成の方法、戻り値を持つスレッドを取得する方法。
3.スレッドの状態と属性。
4.スレッド間の通信、sleep、yield、join、wait、notify \ notifyAll、semaphore、pipeline、およびsleepとwaitの違い。
5.ロック、バイアスロック、軽量ロック、重量ロック、楽観的ロック、悲観的ロック、スピンロック、共有ロック、排他的ロック、再入国ロック、および非再入国ロック。
6.volatitleの基本的な実装。
7.同期の基本的な実装、ロックアップグレードプロセス、インスタンスロックとクラスロックの違い、およびロックとの違い。
8.CASとAQSの原則と実現。
9. ReentrantLock、ReentrantReadWriteLock、およびStampedLockの実装原則と特性。
10.ThreadLocalの特性と基本原則。
11.スレッドプールの作成に必要なパラメーター、パラメーターの設定方法、スレッドプールの実行プロセス、高い同時実行性の下での方法12.スレッドプールを使用します。
Mysql関連
1.innoDBとmyisamの違い。
2. InnoDBのインデックスの実装、一意のインデックス、カバーインデックス、プレフィックスインデックス、ジョイントインデックス、および左端のマッチング原則。
3.いつインデックスが必要になり、どのようにインデックスを選択するか。
4. MVCCの原則、やり直し、元に戻す、ロールバックセグメント。
5.自己増加ロック、共有ロック、排他的ロック、意図的ロック、挿入意図的ロック、記録ロック、およびギャップロックとは何ですか。
6.トランザクションの4つの主要な特性、同時実行の一貫性によって引き起こされる問題、4つの分離レベルによって解決される問題、およびそれらの実装方法(追加されるロック)。
7.3番目の通常の形式。
8.mysqlを最適化する方法。
Redis関連
1.Redisがとても速いのはなぜですか。
2.Redisデータ構造と基礎となる実装。
3.永続化メカニズム、RDB、AOFとその選択方法、AOFの書き換えを再実行します。
4.期限切れのキー削除戦略とメモリ除去戦略を再ディスします。
5.トランザクションを再実行します。
6. Redisの高可用性、高性能、Redisマスタースレーブアーキテクチャ、Redis Sentinel、Redisクラスターソリューション。
7.キャッシュの浸透、キャッシュの故障、キャッシュのなだれの原因と解決策。
春関連
1.IOCとAOPを導入します。
2.SpringがBeanのインスタンス化を構成する方法は何ですか。
3.Beanがプロパティを挿入する方法は何ですか。
4.春の豆の範囲;
5. Spring Beanのライフサイクル(IOCのライフサイクル全体を確認し、ソースコードを確認できるようにすることをお勧めします)。
6. SpringフレームワークのシングルトンBeanはスレッドセーフであり、その処理方法。
7. Spring AOPの基本的な実装と2つの動的エージェントの実装(2つのエージェントメソッドを手動で実装することをお勧めします)。
8.AOPのさまざまな名詞の概念。
9.循環依存の問題、3レベルのキャッシュについて話しましょう。
10. Springトランザクションの伝播動作、分離レベル、スーパーマーケット属性、読み取り専用属性、およびロールバックルール。
11.そしてSpringのさまざまな注釈。
SpringBoot
1.Springbootの起動原理の分析。
2.Springbootのライフサイクル。
3.SpringBoot自動構成モジュール。
4、SpringBootスターター;
5.SpringBootApplicationの概要。
SpringCloud
1.各コンポーネントの機能を紹介します。
2. RESTAPIおよびRPC;
3. SpringCloudとdubboの違い。
4.Eurekaはどのようにして高い可用性を実現しますか。
5.ユーレカの自己防衛モデルとは
6. EurekaとZooKeeperはどちらも、サービスの登録機能と検出機能を提供できます。2つの違いを教えてください。
ダボ
1.サービスの登録と発見。
2、SPI;
3.サービス公開プロセス。
4.サービスリファレンス。
5.ダウングレード;
6.負荷分散;
デザインパターン
1.ファクトリーデザインモード、ストラテジーモード、コンストラクションモード、アピアランスモード、シングルトンデザインモード、オブザベーションモードなどについてよく知っているほど良いです。
2.一般的に、インタビュアーは、フレームワークで使用されているものではなく、使用したものを尋ねます。とにかく、私は常に戦略パターンを使用したと言いました(コードではデザインパターンを使用したほうがよい)。
メッセージキュー
1.プロジェクトでメッセージキューを使用する理由と、使用できるメッセージキュー。
2.繰り返しのメッセージ消費、メッセージ損失、メッセージバックログ、順次消費などの問題を解決する方法。
3.メッセージキューの高可用性を確保する方法。
同時実行性の高いシナリオ
1.最適なソリューションを実現するためにデータが正しく挿入されるように、500万個のデータをデータベースに定期的に挿入および削除する方法。
2.高い同時実行性の下でRedisを設計および使用する方法。
3.マイクロサービスとは何ですか?
4、BIO和NIO;
5.このインターフェースの高いパフォーマンスと高い可用性を確保するために、高い同時実行シナリオでインターフェースを設計する方法。
6.分散ロック(Redisとzookeeperによって実装)、および分散トランザクション。分散トランザクションを理解していない場合は、ローカルメッセージテーブルを使用して実装することをお勧めします。少なくとも全体的な概念を理解するのは簡単です。
コンピュータネットワーク
1.7層プロトコルとは何ですか。
2.手を3回振って、4回振ってください。
3.ブラウザにURLを入力してからWebページに戻るまでに何が起こったのか。
4.コンピュータネットワークについてはよくわかりません。HTTP、HTTPS、およびTCPについていくつかの詳細な質問がありました。
アルゴリズム
1.時間がある場合は、より多くのアルゴリズムをブラッシングすることをお勧めします。時間がない場合は、一般的なアルゴリズムを確認してください。
2.主にデータ構造。時間と空間の複雑さについて質問します。
3.大きなトップパイルに尋ねました。
4.多くのURLが格納されている大きなファイルを読み取る方法、最も一般的に使用されるURLを見つける方法。
5.一般的なURL変換の問題もあります。
6.リンクされたリストを逆にし、2つの配列で同じ番号を見つけるなど。
やっと
最近多くの方が取材をされていることを踏まえ、ここでは取材の話題資料や他社の経験を盛り込んでいます。それが皆に役立つことを願っています。
上記のインタビューの質問に対する回答は、ドキュメントノートにまとめられています。また、2020年に収集されたいくつかの大企業からのインタビュー資料と最新のインタビュー質問を整理しました(すべてドキュメントに整理され、スクリーンショットのごく一部です)。必要に応じて、クリックしてパスワードを入力できます:csdn
以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。ワンクリックで3回連続!