序文
少し前に、一緒に働いていた同僚と一緒にインタビューに参加しました。最初の停車地は深セン、2番目の停車地は上海、3番目の停車地は杭州でした。一流の会社ですので、インタビューではあまりお話しません。実は、この記事を書くつもりはなかったのです。主な理由は、記憶があまり良くないことです。また、最近、2020年の最新の面接の質問について多くの人から質問がありました。本当に答えられないので、繰り返し答えないようにしています。少しの労力を節約して、ここに返信してください。正直なところ、付き添いとしては面接中に一緒に面接に行くことはできませんが、面接後、同僚が漠然とした記憶を持って出てきて、当時の人事部からの質問をゆっくりと思い出しました。以下は私の照合です。いくつかのインタビューの質問は、完全ではありませんが、尋ねなければならないほとんどの質問です(序文では、インタビューの回答を1つずつ書き留めることはしません。結局のところ、回答はレベルによって異なります。ゆっくりと理解するのはみんな次第です)私が助けることができるのはそんなにたくさんありません。以下はインタビューの質問です。
最初の目的地:(シェンゼン)
- 複数のスレッドが同時に読み取りと書き込みを行います。リーダースレッドの数はライタースレッドの数よりもはるかに多くなります。並行性の問題をどのように解決する必要があると思いますか。どのような種類のロックを追加しますか?
- JAVAのAQSはそれが何であるかを知っていますか?
- 同期キーワードを除いて、スレッドの安全性をどのように確保しますか?
- いつvolatileキーワードを追加する必要がありますか?スレッドの安全性を保証できますか?
- スレッドプール内のすべてのスレッドがビジーで、新しいタスクを送信した場合、どうなりますか?キューがいっぱいになった後もビジー状態ですが、再度送信するとどうなりますか?
- Tomcat自体のパラメーターをどのように調整しますか?
- 同期されたキーワードによって何がロックされますか?バイトコードでどのように表されますか?メモリ内のオブジェクトで何を表しますか?
- wait / notify / notifyAllメソッドを同期ブロックに含める必要がありますか?何故ですか?
- 一般的にExecutorServiceをどのように使用しますか?サービスごとに1つですか、それとも1つのアイテムですか。メリットは何ですか?
2番目と3番目の停車地
春
- SpringのAOPを使用したことがありますか?使用されていますか?どのように使用しますか?
- インターフェイスに2つの異なる実装がある場合、Autowireはどのように特定の実装を持つことができますか?
- Springの宣言的トランザクション@Transactionアノテーションは一般的にどこに書き込まれますか?例外がスローされた場合、自動的にロールバックされますか?ロールバックをトリガーしないように制御する方法はありますか?
- 特定のBeanが作成およびアセンブルされた後に独自のロジックを実行する場合、どのように実装できますか?
- SpringBootはWebコンテナに入れられていませんが、なぜHTTPサービスを実行できるのですか?
- SpringBootで、application.properties以外のカスタム構成ファイルを使用する場合は、どうすればよいですか?
- SpringMVCのRequestMappingでGETメソッドとPOSTメソッドを指定できますか?指定する方法は?
- SpringMVCが出力オブジェクト(XXResultやXXResponseなど)をJSON出力としてパッケージ化する場合は、どうすればよいですか?
- SpringMVC例外をインターセプトし、JSONへのログ記録やパッケージ化などのカスタム処理を行う方法
- 1.struts1とstruts2の違い
- .struts2とspringMVCの違い
- Springフレームワークで参照する必要があるjarパッケージとこれらのjarパッケージの目的
- springMVCの原理
- springMVCアノテーションの意味
- 春のbeanFactoryとApplicationContextの関係と違い
- スプリングインジェクションのいくつかの方法
- 春はどのように物事管理を実現しますか
- springIOCおよびAOPの原則
- 休止状態でレベル1とレベル2のキャッシュを使用する方法と違いの原則
- 春の周期的注入の方法
MySQL
- MYSQLに大量のデータが挿入されている場合、どの方法を選択しますか?
- クエリが遅い場合、最初に考える方法は何ですか?インデックスとは何ですか?
- 単一列のインデックスが作成され、クエリ時に2つの列が見つかった場合、この単一列のインデックスが使用されますか?
- 複数の列を含むインデックスが作成され、最初の列のみがクエリで使用される場合、このインデックスを使用できますか?3列をチェックしてみませんか?
- 質問を続けると、where条件の後にi + 5 <100がある場合、このインデックスが使用されますか?
- 特定のインデックスが使用されているかどうかを確認するにはどうすればよいですか?
- %aaa%のようにインデックスを使用しますか?aaa%のようにどうですか?
- ドロップ、切り捨て、削除の違いは何ですか?
- データベースをどのように監視しますか?遅いSQLをどのようにトラブルシューティングしますか?
- データベースは絵文字表現をサポートしていますか?サポートしていない場合は、その方法を教えてください。
- データベースの1つのテーブルにあるデータの量はどれくらいですか?ほとんどの場合、クエリのパフォーマンスは急激に低下し始めますか?
- クエリが終了しました。どのクエリプロセスが実行されているかを確認するには、どのコマンドを使用しますか?あなたがそれを見つけた後、あなたは通常それをしますか?
- 読み取りと書き込みの分離はどのように行われますか?ミドルウェアはどのように機能すると思いますか?この操作はトランザクションと何の関係がありますか?14.サブデータベースサブテーブルを作成しましたか?オンライン移行プロセスはどのようなものですか?データが正しいことを確認するにはどうすればよいですか?
- MySQLの一般的なコマンド
- データベース内のものの特徴は何ですか?
- JDBCの使用?
- InnodBとMyISAMの違い
- MySQLがインデックスとしてB +ツリーを使用するのはなぜですか?
JVM
- オンラインで何を知っていますか、またはどのGC戦略を使用していますか?その利点は何ですか?また、どのシナリオが適していますか?
- どのようなJAVAクラスローダーが含まれていますか?それらの間のサブ関係は何ですか?親の委任メカニズムとはどういう意味ですか?メリットは何ですか?
- クラスローダーをカスタマイズする方法は?どれを使用しましたか、またはどのシナリオでカスタムクラスローダーが必要ですか?
- ヒープメモリ設定のパラメータは何ですか?5. Perm Spaceにはどのようなデータが保存されていますか?OutOfMemoryが発生しますか?6. gcを実行するとき、オブジェクトがメモリ内の各スペースで移動される順序は何ですか?
- OutOfMemoryの問題が発生しましたか?この問題にどのように対処しますか?プロセスの利点は何ですか?
- Perm Spaceは1.8以降どのような変更がありますか?MetaSpaceのサイズ制限はデフォルトですか?またはサイズを指定するためにどの方法を使用しますか?
- Jstackとは何ですか?Jstatはどうですか?オンラインプログラムが定期的にフリーズする場合は、gcが原因である可能性があります。この問題のトラブルシューティングをどのように行いますか?スレッドのどの部分を普段見ていますか?
- StackOverFlowの例外が発生しましたか?通常、どのような状況でトリガーされると思いますか?スレッドのスタックサイズを指定するにはどうすればよいですか?あなたは一般的にいくら書きますか?
マルチスレッド
1)スレッドとは何ですか?
2)スレッドとプロセスの違いは何ですか?
3)Javaでスレッドを実装する方法は?
4)ランナブルまたはスレッドを使用しますか?
6)Threadクラスのstart()メソッドとrun()メソッドの違いは何ですか?
7)JavaのCyclicBarrierとCountDownLatchの違いは何ですか?
8)Javaの揮発性変数とは何ですか?
9)Javaの同期収集と同時収集の違いは何ですか?
10)デッドロックを回避する方法は?
11)Javaのライブロックとデッドロックの違いは何ですか?
12)Javaの同期とReentrantLockの違いは何ですか?
13)JavaでのConcurrentHashMapの同時実行性とは何ですか?
14)Javaで不変オブジェクトを作成するにはどうすればよいですか?
15)シングルトンモードのダブルチェックロックとは何ですか?
16)従うマルチスレッドの3つのベストプラクティスを書く
17)デッドロックを回避する方法は?
- 一般的なスレッドプールモードとさまざまなスレッドプールの使用シナリオ
Netty
1. BIO、NIO、AIOの違いは何ですか?
2. NIOの構成は何ですか?
3. Nettyの特徴は何ですか?
4. Nettyのスレッドモデル?
5. TCPスティック/アンパックの理由と解決策は?
6.どのようなシリアル化プロトコルを知っていますか?
7.シリアル化プロトコルの選択方法は?
8. Nettyのゼロコピーの実装とは何ですか?
9. Nettyの高性能とは何ですか?
10. NIOEventLoopGroupソースコード?
Redis
1. RedisとMemorycacheの違いは?
2. Redisの5つのデータ構造?
3.プログレッシブリハッシュプロセス?
4.ソースコードを再ハッシュしますか?
5.永続性メカニズム6.ソースコードの理由は?
7.事務とイベント
8.マスタースレーブレプリケーション
9.起動プロセス
10.クラスター
11.Redisの6つのデータ除去戦略
12. redisでの同時競争?
Hadoop
1. HDFSの特徴は何ですか?
2.クライアントはHDFSからデータをどのように読み書きしますか?
3. HDFSのファイルディレクトリ構造は何ですか?
4. NameNodeのメモリ構造は何ですか?
5. NameNodeの最適化を再開しますか?
6. Gitの使い方は?
7.Mavenの使用
いくつかの高給のインタビューの質問への回答
さて、ここでの面接の質問はほぼ終了しました。上記の面接の質問をすべて理解し、それらすべてに答えることができれば、ここであなたに言うことができます、あなたは良いです、そして私はそれを取ります。上記の質問が正しくなく、それでも答えられない場合は、私の足跡をたどって、私がまとめた答えを受け取ることができます。私が要約した主要なシステムを紹介します。Javaエンジニアリングに対応する学習資料もあります。高性能と分散型の高性能は、深遠なことを簡単な方法で説明します。パフォーマンスチューニング、Spring、MyBatis、Nettyソースコード分析などの知識ポイントの説明
転送+コメントした後、私に従って、アシスタントVX:MXW5308を追加して無料で受け取ります
以下は、私が要約した主なシステム図です。
1つは、ソースコード分析です。
2つの分散アーキテクチャ
3つ、マイクロサービス
第四に、パフォーマンスの最適化
5、Javaエンジニアリング
対応するアーキテクチャビデオ(部分的)
総括する:
上記は私が言いたいことです。上記のコンテンツが、沈黙の苦難に直面し、ボトルの問題に遭遇し、何をすべきかわからないJavaプログラマーに役立つことを願っています。私があなたを助けることができるのはそれほど多くありません。インタビューの質問は要約されています。それだけです。私ができることはたくさんあります。今後の仕事やインタビューですべてがうまくいくことを願っています。
転送+コメントした後、私に従って、アシスタントVX:MXW5308を追加して無料で受け取ります