Javaエクスペリエンスサマリー共有のソーシャルリクルートの1年以上の経験

ショートークはありません、始めてください!

ここに写真の説明を挿入

共通の知識ポイント

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回連続!

おすすめ

転載: blog.csdn.net/qq_41770757/article/details/109005177