長年にわたって主要な工場のインタビュアーによって教えられたインタビューの経験と、AliP8レベルのアーキテクトによって編集された高頻度のJavaコアナレッジポイントを要約します。

序文:

Javaプログラマーが常に最も懸念している質問:Javaの学習パス?Javaは仕事を得るためにどの程度学ぶ必要がありますか?Javaトレーニング機関は信頼できますか?などなど。

以下は、参考のために仕事や面接に必要な知識文書の要約です。あなたの知識が時代の要求に追いつくことができるかどうかをテストすることができます。完全なドキュメントは14の主要なアイテムと78のマイナーなアイテムをカバーします。私は道路であなたを助けたいです!

1。Javaの基本

  • 1.11Javaリフレクション

Javaリフレクションの概念とアプリケーションシナリオ

リフレクションメカニズムでプライベートメンバーの値を取得できますか(setおよびget関数はありません)

リフレクションのすべてのパッケージ、リフレクションを実現する方法

反射の定義

Java.long.reflectの一般的なメソッド

二。セットする 

2.12ハッシュアルゴリズム

Javaマップの低レベルの実装、ソースコード、およびさまざまなコレクション間の違いを確認することをお勧めします

4.TreeMapとTreeSetの違いと実装の原則

5.セットと順序セットの違いは何ですか

6.セットが乱れているので、それが正常であることを確認するにはどうすればよいですか?解決策は何ですか?TreeSetについて言及しました、それについて話しましょう

TreeSetが注文を保証できるのはなぜですか?

7. JavaでのhashMapの構造、競合の処理方法、他の方法、各方法の長所と短所

.Collections.sort()の原則

コレクションフレームワークの理解Javaのコレクションフレームワークにはどのような理解があり、どのコレクションクラスが使用されているか、それぞれの効率と

該当シーン

casの実現原理とabaの問題

リスト/セット/キューインターフェイスとその実装クラス

これらのクラスHashSet / TreeSet / HashMap / TreeMap / hashTableの基礎となる実装。

よくある質問:hashSetとHashMapの違いは何ですか。それらの基礎となる実装は何に基づいていますか。

ここでの次の質問は通常、マルチスレッド(笑顔)について話しましょう、または赤について話しましょう

黒い木。2.13イテレータ列挙

 

三。Javaマルチスレッド

4.2。スレッドの状態

  •  1.新しい状態(新規):スレッドオブジェクトが新しく作成されます。
  •  2.準備完了状態(実行可能):スレッドオブジェクトが作成された後、他のスレッドはオブジェクトのstart()メソッドを呼び出します。この状態のスレッドは、実行可能なスレッドプールに配置され、実行可能になり、CPUを使用する権利を待ちます。
  • 3.実行状態(実行中):準備完了状態のスレッドがCPUを取得し、プログラムコードを実行します。
  • 4.ブロック:ブロック状態では、スレッドは何らかの理由でCPUを使用する権利を放棄し、一時的に実行を停止します。スレッドが準備完了状態になるまで、実行状態に移行する機会があります。ブロッキングには次の3つのタイプがあります。
  • (1)ブロッキングの待機:実行中のスレッドはwait()メソッドを実行し、JVMはスレッドを待機プールに入れます。(待機すると、保持されているロックが解放されます)
  • (2)同期ブロッキング:実行中のスレッドがオブジェクトの同期ロックを取得するときに、同期ロックが別のスレッドによって占有されている場合、JVMはそのスレッドをロックプールに入れます。
  • (3)その他のブロック:実行中のスレッドがsleep()またはjoin()メソッドを実行するか、I / O要求を送信すると、JVMはスレッドをブロック状態にします。sleep()状態がタイムアウトするか、join()がスレッドの終了またはタイムアウトを待機するか、I / O処理が完了すると、スレッドは準備完了状態に戻ります。(スリープは保持されているロックを解放しないことに注意してください)
  • 5.デッド状態(デッド):スレッドは、例外のために実行を終了するか、run()メソッドを終了し、スレッドはそのライフサイクルを終了します。   

 

四。Javaの高度なssh / ssmフレームワーク

2.4Redis

  • Redisデータ構造Redis永続性メカニズム
  • Redisのコンシステントハッシュアルゴリズム
  • redisは5つのredisデータ型についてどのくらい知っていますか、ハッシュ型の値が非常に大きい場合に圧縮する方法、
  • redisを使用して揺れや近くの人の機能を実現する方法、redisマスタースレーブレプリケーションプロセス、
  • Redisが主要な競合を解決する方法
  • redisの5つのデータ構造
  • redisはどのようにデータを保存しますか
  • Redisの使用シナリオ

ファイブ。Javaメモリモデルとガベージコレクション

3.9面接の質問

3.9.1一般的なJavaヒープはどのように実装されますか?

私:HotSpot仮想マシンの実装では、Javaヒープは新世代と旧世代に分けられます。1.7の実装を見ていました。

常設世代があり、新世代はエデンエリアとサバイバーエリアに分かれており、

生存者エリアはS0とS1に分けられます。

またはからとへ(このトピックは長い間議論できると思うので、現時点では紙とペンをお願いします、そして

私はもっ​​とよく知っています...絵を描いている間、説明している間)、エデンのデフォルトのメモリサイズは8:1:1です

(詳細はすべて言わなければなりません...)この時点で、私はすでに新世代と旧世代が代表する領域を紙に描いています。

 

6。デザインパターン

4.1.13組み合わせモード

複合コンビネーションモード:

これは部分全体モデルとも呼ばれ、単一のオブジェクトとオブジェクトの組み合わせが等しいことをクライアントに認識させます。言い換えれば、特定の

タイプメソッドは、独自のタイプもパラメーターとして受け入れます。

avax.swing.JComponent#add(Component)

java.util.Map#putAll(マップ)

java.util.List#addAll(Collection)

java.util.Set#addAll(Collection)

セブン。データ構造とアルゴリズム

8。データベース

8.7データベースパラダイム

  • 1NF:1NFに準拠する関係の各属性は分割できません
  • 2NF:属性は主キーに完全に依存しています[いくつかのサブ機能の依存関係を排除します]
  • 3NF:属性は他の非プライマリ属性に依存しません[推移的な依存関係を排除します]
  • BCNF:1NFに基づいて、非プライマリ属性はプライマリキーサブセットに依存できません[3NFに基づいて、プライマリコードサブセットへの依存を排除​​します
  • 4NF:同じテーブルの多対多の関係を削除する必要があります。
  • 5NF:最終的な構造から元の構造を再確立します。

ナイン。オペレーティング・システム

10.2.2デッドロックの回避-セキュリティシーケンス

セキュリティシーケンス

セキュリティシーケンスとは、リソースを申請する現在のプロセスのシーケンスを指し、このシーケンスに従ってリソースが割り当てられてプロセスが完了し、「醤油と酢」の恥ずかしさが発生しないようにします。

問題。

プロセスP1、P2、... Pnがあると仮定します

次に、セキュリティシーケンスの要件が満たされます。Pi(1 <= i <= n)必要なリソース<=残りのリソース+ Pj(1 <= j <i)に割り当てられたリソース

等号の右側にリソースが割り当てられているのはなぜですか?銀行家の問題について考えてみてください。割り当てられたリソースは2人目の開発者のようなものであり、返済することができます。

さあ、これを考慮に入れなければなりません。

十。Linuxコマンド

10.9Linuxロック

 

1.ミューテックス

ミューテックスロックは、相互排除に使用される1つのスレッドにのみ使用できます。

ミューテックスの基本的な操作は次のとおりです

3.スピンロック

スピンロックがロックされた後、待機中のスレッドはスリープをブロックする代わりにビジー待機状態になり、セマフォを使用して待機中のスレッドをスリープブロックにします。

スピンロックのビジーウェイトはプロセッサ時間を浪費しますが、時間は通常非常に短く、1ミリ秒未満です。

十一。事業

 

記事の長さのため、ドキュメントの一部しか表示できません。ドキュメント全体と、私が長年にわたって編集した面接の質問のワンクリックトリプル+コメントが必要です。次に、VX(tkzl6666)を追加して無料で受け取ります。

おすすめ

転載: blog.csdn.net/JavaBUGa/article/details/112176466