序文
現在、Java 面接の本質は定型的なエッセイであり、定型的なエッセイの面接質問を暗記することによってのみ、面接で良いパフォーマンスを発揮することができます。ゴールデン9月、シルバー10月の採用ゴールデンシーズンが到来!大学院受験や就職活動で悩んでいるときは、まずは面接の質問を読んでみてください。最終的な目標は、好きな仕事に就くことです。良い仕事は早い時期に来るので、学生は早めに準備する必要があります。
1. JDK、JRE、JVMの違い
-
JDK: Java Standard Development Kit。Java コンパイラ、Java ランタイム環境、一般的に使用される Java クラス ライブラリなど、Java プログラムのコンパイルと実行に必要なさまざまなツールとリソースを提供します。
-
JRE: Java バイトコード ファイルを実行するために使用される Java ランタイム環境。JRE には、JVM と JVM の動作に必要なクラス ライブラリが含まれており、一般ユーザーは Java プログラムを実行するために JRE をインストールするだけで済みますが、プログラム開発者はプログラムをコンパイルおよびデバッグするために JDK をインストールする必要があります。
-
JVM: JRE の一部である Java 仮想マシンは、Java クロスプラットフォーム実装全体の中核部分であり、バイトコード ファイルの実行を担当します。
2. hashCode()とequals()の関係
Java では、各オブジェクトは独自の hashCode() メソッドを呼び出して、オブジェクトのフィンガープリント情報に相当する独自のハッシュ値 (hashCode) を取得できます。一般に、同じフィンガープリントは世界に 2 つとありません。それほど絶対的であることは不可能ですが、hashCode を使用して次のような初期の判断を行うことはできます。
-
2 つのオブジェクトの hashCode が同じでない場合、2 つのオブジェクトは異なるオブジェクトである必要があります。
-
2 つのオブジェクトの hashCode が同じであっても、2 つのオブジェクトが同じオブジェクトである必要があるというわけではなく、あるいは 2 つのオブジェクトである可能性もあります。
-
2 つのオブジェクトが等しい場合、それらのハッシュコードは同じでなければなりません
3. String.StringBuffer.StringBuilder の違い
-
文字列は不変です。変更しようとすると、新しい文字列オブジェクトが生成されます。StringBuffer と StringBuilder は変更可能です。
-
StringBuffer はスレッドセーフですが、StringBuilder はスレッドセーフではないため、シングルスレッド環境では StringBuilder の方が効率的です。
4. ジェネリックにおける extends と super の違い
-
<? extends T> は、T を含む T のサブクラスを意味します。
-
<? super T> は、T を含む任意の T の親クラスを意味します。
5. ==とequalsメソッドの違い
-
==:基本データ型の場合は値の比較、参照型の場合は参照アドレスの比較
-
等しい:等号メソッドを書き換えた後、各クラスの比較ロジックを確認します。たとえば、String クラスは参照型ですが、equals メソッドは String クラスに書き換えられます。メソッドの内部比較は、文字列内の文字列です。 . 文字がすべて等しいかどうか。
6. オーバーロードと書き換えの違い
7. リストとセットの違い
8. ArrayList と LinkedList の違い
9. ConcurrentHashMap の拡張メカニズムについての話
10. Jdk1.7 から Jdk1.8 の HashMap (最下層) に何が変更されましたか?
11. HashMap の Put メソッドについて話す
12. ディープコピーとシャローコピー
13. HashMap展開機構の原理
14. CopyOnWriteArrayList の基礎となる原理は何ですか
15. バイトコードとは何ですか? バイトコードを使用する利点は何ですか?
16. Java の例外システムとは何ですか?
17. Java の例外処理メカニズムでは、いつ例外をスローし、いつ例外をキャッチする必要がありますか?
18. Javaにはどのようなクラスローダーがありますか
19. クラスローダーの親委任モデルについて話す
20. JVM のスレッド共有領域とは何ですか
21. プロジェクト内の JVM の問題をトラブルシューティングする方法
22. オブジェクトは、JVM にロードされてから GC によってクリアされるまで、どのようなプロセスを経ますか?
23. オブジェクトがゴミであるかどうかを判断する方法
24. JVM にはどのようなガベージ コレクション アルゴリズムがありますか?
25. STWとは何ですか?
26. JVM パラメータとは何ですか?
27. スレッドセーフの理解について話す
28. デーモンスレッドの理解
29. ThreadLocal の基本原理
30. 並行性と並列性。シリアルの違い
31. Java デッドロックを回避するにはどうすればよいですか?
32. スレッドプールの基本的な動作原理
33. スレッド プールが最大のスレッドを最初に作成するのではなく、最初にキューを追加するのはなぜですか?
34. ReentrantL 0ock における公平なロックと不公平なロックの基礎となる実装
35. ReentrantL.ock の tryLock) メソッドと lock) メソッドの違い
36. CountDownLatch と Semaphore の違いと基本原理
37. 同期バイアスロック、軽量ロック、重量ロック
38. Synchronized と ReentrantLock の違い
39. AQS についての理解について話してください。AQS はどのようにリエントラント ロックを実装しますか?
40. I0C についての理解について話す
41. シングルトン Bean とシングルトン パターン
42. Springトランザクション伝播メカニズム
43. Spring トランザクションはいつ失敗しますか?
44. Spring での Bean 作成のライフサイクルのステップは何ですか
45. Spring の Bean はスレッドセーフですか?
46. ApplicationContextとBeanFactoryの違いは何ですか
47. Springではトランザクションはどのように実装されるのか
48. Spring で @Transactional が失敗するのはいつですか?
49. Springコンテナの起動処理とは
50. Spring が使用するデザイン パターン
51. Spring Boot で一般的に使用されるアノテーションとその基礎となる実装
52. Spring Boot はどのように Tomcat を起動しますか
53. Mybatisのメリットとデメリット
54. #0 と $0 の違いは何ですか?
55. インデックス作成の基本原則
56. インデックス設計の原則は何ですか?
57. トランザクションの基本特性と分離レベル
58.MVCCとは
59. MyISAMとInnoDBの違いを簡単に説明
60. Explain ステートメントの結果の各フィールド サブテーブルは何を表しますか?
61. インデックスカバレッジとは何ですか
62. 一番左の前提原則は何ですか?
63. Innodb はトランザクションをどのように実装するか
64. B ツリーと B+ ツリーの違い、Mysq が B+ ツリーを使用する理由
65. Mysql ロックとは何か、またその理解方法
66. Mysq | クエリを最適化するには?
67. RDBとAOFとは何ですか
68. Redis の期限切れキーの削除戦略
69. Redisトランザクション実装を簡単に説明する
70. Redis マスター/スレーブ レプリケーションの中心原則
71. Redis にはどのようなデータ構造がありますか? 典型的なアプリケーション シナリオは何ですか?
72. Redis 分散ロックの最下層はどのように実装されていますか?
73. Redis マスター/スレーブ レプリケーションの中心原則
74. Redis クラスター戦略
75. キャッシュの侵入。キャッシュブレークダウンとキャッシュアバランチとは何ですか?
76. Redis と Mysql がデータを保証する方法 - -
77. Redis の文化メカニズム
78. Redis シングルスレッドはなぜ非常に速いのですか?
80. CAP理論とは
81. BASE理論とは
82. RPCとは何ですか?
83. データ整合性モデルとは何ですか?
84. 分散Dとは何ですか? どのような解決策がありますか?
85. 分散ロックの最もよく使用される分野は何ですか?実装計画は何ですか?
86. 分散トランザクションとは何ですか?実装計画は何ですか?
87. ZABプロトコルとは何ですか?
88. Zookeeper が登録センターとして使用できる理由
89. Zookeeper のリーダー選出のプロセスは何ですか?
90. Zookeeper クラスター内のノード間でデータを同期する方法
91. Dubbo はどの負荷分散戦略をサポートしていますか?
92. Dubbo はどのようにしてサービスのエクスポートを完了しますか?
93. Dubbo はどのようにしてサービスの導入を完了しますか?
94. Duboのアーキテクチャデザインは何ですか?
95. 負荷分散アルゴリズムとは何ですか?
96. 分散アーキテクチャ下でのセッション共有のソリューションは何ですか?
97. インターフェースの冪等性を実現する方法
98. zkのネーミングサービスについて簡単に説明します。構成管理、クラスタ管理
99. Zookeeper の時計の仕組みについて話す
100. 動物園の飼育員とエウレカの違い
101. ストレージ分割後の一意の主キーの問題を解決する方法
102. スノーフレークアルゴリズムの原理
103. パーティションキーなしでクエリの問題を解決する方法
104. Spring Cloud の共通コンポーネントとその機能は何ですか?
105. キャッシュの侵入とキャッシュの破壊を回避する方法。キャッシュ雪崩?
106. 分散システムで一般的に使用されるキャッシュ方式は何ですか
107. キャッシュの期限切れに対する戦略は何ですか?
108. 一般的なキャッシュ削除アルゴリズム
109. ブルームフィルターの原理、メリットとデメリット
110. 分散キャッシュアドレス指定アルゴリズム
111. Spring Cloud と Dubbo の違いは何ですか?
112. サービス Xuegang とは何ですか? サービスの電流制限とは何ですか?
113. サービスサーキットブレーカーとは何ですか? サービスダウングレードとは何ですか? 違いは何ですか?
114. SOA、分散サービス、マイクロサービスの関係と違いは何ですか?
115. マイクロサービスを分割するにはどうすればよいですか?
116. 凝集性が高く結合性が低いマイクロサービスを設計するにはどうすればよいですか?
117. DDD ドメイン駆動設計について学んだことがありますか?
118.中台とは何ですか?
119. プロジェクトでマイクロサービスのアジャイル開発を確実に行うにはどうすればよいですか?
120. メッセージキューのタイプを選択するにはどうすればよいですか?
121. RocketMQのトランザクションメッセージはどのように実現されているのか
122. RocketMO はなぜ okeeper を登録センターとして使用しないのですか?
123. RocketMQの実装原理
124. RocketMQ はなぜ速いのですか?
125. メッセージキューはどのようにして信頼性の高いメッセージ送信を保証しますか
126. メッセージキューの機能は何ですか?
127. デッドレターキューとは何ですか? 遅延キューとは何ですか?
128. メッセージの効率的な読み取りと書き込みを確実に行うにはどうすればよいですか?
129. epollとpollの違い
130. TCP の 3 ウェイ ハンドシェイクと 4 ウェイ ウェーブ
131. ブラウザはリクエストの送信からレスポンスの受信までどのようなステップを経ますか?
132. クロスドメインリクエストとは何ですか? 何が問題ですか? その解決方法は何ですか?
133. ゼロコピーとは何ですか?
あなたの読書体験に影響を与えないように、この Java の典型的なエッセイの実際の面接の質問があなたのために整理されています。