序文
春採用、秋採用、社会採用、Javaプログラマーの面接はかなり厳しいです。人事を通過した後は、技術面の面接を受けなければなりません。かなり休みましたが、幸運なことに、面接を受けることができました。結果的にはユニコーン企業に入社することができ、今まで好きな仕事をしてきました…最近はほとんど休みをとって、皆さんのために大きな工場への面接の準備をしてきました。 Java 復習面接の質問と回答のセットです。多くの学生が復習方法や、学習プロセスの重要なポイントがわからないことはわかっています。実際、Xiao Ma もあなたが経験したことを経験しています。そうすべきです。なぜなら、私が経験したからです。だから、このことで傷ついている生徒がまだ何千人もいるということを見たくないのです。おそらくこの記事は何千人もの生徒を助けることはできませんが、これを読んで混乱している人を助けることはできます。 Zhihu プラットフォームの記事。私も満足です!
また、大手工場でよくある面接の質問を数か月かけて収集し、整理しました。必要なものはすべてここでカバーされています: Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、 Kafka、Linux、その他のテクノロジー スタック! !
具体的な面接の質問は次のとおりです。
1. Javaの基本
-
1. JDK と JRE の違いは何ですか?
-
2. == と等しいの違いは何ですか?
-
3. 2 つのオブジェクトの hashCode() が同じ場合、equals() も true でなければなりません。
-
4. Java における Final の役割は何ですか?
-
5. Java では Math.round(-1.5) は何に相当しますか?
-
6. String は基本的なデータ型ですか?
-
7. Java で文字列を操作するためのクラスにはどのようなものがありますか? それらの違いは何ですか?
-
8. String str="i" は String str=new String("i") と同じですか?
-
9. 文字列を反転するにはどうすればよいですか?
-
10. String クラスでよく使用されるメソッドは何ですか?
-
11. 抽象クラスには抽象メソッドが必要ですか?
-
12. 通常クラスと抽象クラスの違いは何ですか?
-
13. 抽象クラスをfinalで修飾できますか?
-
14. インターフェースと抽象クラスの違いは何ですか?
-
15. Java には何種類の IO ストリームがありますか?
-
16. BIO、NIO、AIO の違いは何ですか?
-
17. ファイルの一般的なメソッドは何ですか?
二、容器
-
18. Java コンテナとは何ですか?
-
19. コレクションとコレクションの違いは何ですか?
-
20. リスト、セット、マップの違いは何ですか?
-
21. HashMap と Hashtable の違いは何ですか?
-
22. HashMap と TreeMap のどちらを使用するかをどのように決定しますか?
-
23. HashMapの実装原理について教えてください。
-
24. HashSetの実装原理について教えてください。
-
25. ArrayList と LinkedList の違いは何ですか?
-
26. 配列とリスト間の変換を実現するにはどうすればよいですか?
-
27. ArrayList と Vector の違いは何ですか?
-
28. Array と ArrayList の違いは何ですか?
-
29. Queueのpoll()とremove()の違いは何ですか?
-
30. スレッドセーフなコレクションクラスはどれですか?
-
31. イテレータ Iterator とは何ですか?
-
32. イテレータの使い方は? 特徴は何ですか?
-
33. Iterator と ListIterator の違いは何ですか?
-
34. コレクションが変更できないようにするにはどうすればよいですか?
3. マルチスレッド化
-
35. 並列処理と同時実行の違いは何ですか?
-
36. スレッドとプロセスの違いは何ですか?
-
37. デーモンスレッドとは何ですか?
-
38. スレッドを作成するにはどのような方法がありますか?
-
39. 実行可能と呼び出し可能の違いは何ですか?
-
40. スレッドの状態とは何ですか?
-
41. sleep() と wait() の違いは何ですか?
-
42.notify()とnotifyAll()の違いは何ですか?
-
43. スレッドの run() と start() の違いは何ですか?
-
44. スレッド プールを作成するにはどのような方法がありますか?
-
45. スレッド プールの状態は何ですか?
-
46. スレッドプールの submit() メソッドとexecute() メソッドの違いは何ですか?
-
47. Javaプログラムでマルチスレッド動作の安全性を確保するにはどうすればよいですか?
-
48. マルチスレッド ロックをアップグレードする原理は何ですか?
-
49. デッドロックとは何ですか?
-
50. デッドロックを防ぐには?
-
51. ThreadLocalとは何ですか? どのような使用シナリオがありますか?
-
52. 同期の基本的な実装原理について教えてください。
-
53. 同期と揮発性の違いは何ですか?
-
54. 同期とロックの違いは何ですか?
-
55. synchronized と ReentrantLock の違いは何ですか?
-
56. 原子の原理について教えてください。
4. 反省
-
57. 反省とは何ですか?
-
58. Java シリアル化とは何ですか? シリアル化が必要になるのはどのような場合ですか?
-
59. 動的プロキシとは何ですか? アプリケーションには何がありますか?
-
60. 動的プロキシを実装するにはどうすればよいですか?
5. オブジェクトのコピー
-
61. クローン作成を使用する理由は何ですか?
-
62. オブジェクトの複製を実装するにはどうすればよいですか?
-
63. ディープコピーとシャローコピーの違いは何ですか?
6. Java Web
-
64. JSPとサーブレットの違いは何ですか?
-
65. JSP にはどのような組み込みオブジェクトがありますか? 機能は何ですか?
-
66. jspの4つのスコープについて教えてください。
-
67. セッションとクッキーの違いは何ですか?
-
68. セッションの動作原理について教えてください。
-
69. クライアントが Cookie を禁止している場合でも、セッションは使用できますか?
-
70. spring mvc と struts の違いは何ですか?
-
71. SQL インジェクションを回避するには?
-
72. XSS 攻撃とは何ですか?また、それを回避する方法は何ですか?
-
73. CSRF 攻撃とは何ですか?またそれを回避する方法は何ですか?
7.異常
-
74. 投げる と 投げる はどう違いますか?
-
75.final、finally、finalizeの違いは何ですか?
-
76. try-catch-finally のどの部分を省略できますか?
-
77. try-catch-finally では、catch に戻りがある場合でも、finally は実行されますか?
-
78. 一般的な例外クラスは何ですか?
8. ネットワーク
-
79. http レスポンス コード 301 と 302 は何を表しますか? 違いは何ですか?
-
80. 転送とリダイレクトの違いは何ですか?
-
81. tcp と udp の違いを簡単に説明しますか?
-
82. TCP はなぜ 3 回握手をする必要があるのに、2 回はできないのですか? なぜ?
-
83. TCP スティッキー パケットがどのように生成されるか教えてください。
-
84. OSI の 7 層モデルとは何ですか?
-
85. get リクエストと post リクエストの違いは何ですか?
-
86. クロスドメインを実現するにはどうすればよいですか?
-
87. JSONPの実装原理について教えてください。
9. デザインパターン
-
88. あなたがよく知っているデザインパターンについて教えてください。
-
89. 単純なファクトリーと抽象的なファクトリーの違いは何ですか?
十、Spring/Spring MVC
-
90. なぜスプリングを使うのですか?
-
91. aop とは何ですか?
-
92. IOC とは何ですか?
-
93. Spring の主なモジュールは何ですか?
-
94. 春に一般的に使用される注射方法は何ですか?
-
95. 春の豆はスレッドセーフですか?
-
96. Spring は Bean スコープをいくつサポートしますか?
-
97.春に豆を自動的に組み立てる方法は何ですか?
-
98. Springトランザクションの実装方法は何ですか?
-
99. Springトランザクション分離について教えてください。
-
100. spring mvc の実行プロセスについて教えてください。
-
101. Spring MVC のコンポーネントは何ですか?
-
102. @RequestMapping の役割は何ですか?
-
103. @Autowired の役割は何ですか?
11. Spring Boot/Spring Cloud
-
104. スプリングブーツとは何ですか?
-
105. なぜスプリングブーツを使うのですか?
-
106. Spring Boot のコア構成ファイルは何ですか?
-
107. Spring Boot 構成ファイルの種類は何ですか? 違いは何ですか?
-
108. Spring Boot でホット デプロイメントを実現するにはどのような方法がありますか?
-
109. jpa と hibernate の違いは何ですか?
-
110. 春雲とは何ですか?
-
111. スプリングクラウドサーキットブレーカーの機能は何ですか?
-
112. Spring Cloud のコアコンポーネントは何ですか?
12.休止状態
-
113. なぜ休止状態を使用するのですか?
-
114. ORM フレームワークとは何ですか?
-
115. 休止状態でコンソールに出力された SQL ステートメントを表示するにはどうすればよいですか?
-
116. Hibernate にはクエリ メソッドがいくつありますか?
-
117. Hibernate エンティティ クラスを Final として定義できますか?
-
118. Hibernate でのマッピングに Integer を使用する場合と int を使用する場合の違いは何ですか?
-
119. 休止状態はどのように機能しますか?
-
120. get() とload() の違いは何ですか?
-
121. Hibernate のキャッシュ メカニズムについて教えてください。
-
122. 休止状態のオブジェクトの状態は何ですか?
-
123. 休止状態における getCurrentSession と openSession の違いは何ですか?
-
124. Hibernate エンティティ クラスにはパラメータのないコンストラクタが必要ですか? なぜ?
13、マイバティス
-
125. mybatis の #{} と ${} の違いは何ですか?
-
126. mybatis にはいくつのページング メソッドがありますか?
-
127. RowBounds はすべての結果を一度にクエリしますか? なぜ?
-
128. mybatis の論理ページングと物理ページングの違いは何ですか?
-
129. mybatis は遅延読み込みをサポートしていますか? 遅延読み込みの原理は何ですか?
-
130. mybatisの一次キャッシュと二次キャッシュについて教えてください。
-
131. mybatis と hibernate の違いは何ですか?
-
132. mybatis にはどのような執行者がいますか?
-
133. mybatisページングプラグインの実装原理は何ですか?
-
134. mybatis はカスタム プラグインをどのように作成しますか?
14. ラビットMQ
-
135. Rabbitmq の使用シナリオは何ですか?
-
136. Rabbitmq の重要な役割は何ですか?
-
137. Rabbitmq の重要なコンポーネントは何ですか?
-
138. Rabbitmq の vhost の機能は何ですか?
-
139. Rabbitmq メッセージはどのように送信されますか?
-
140. Rabbitmq はどのようにしてメッセージの安定性を確保しますか?
-
141. Rabbitmq はどのようにしてメッセージ損失を回避しますか?
-
142. メッセージ永続化を確実に成功させるための条件は何ですか?
-
143. Rabbitmq 永続化の欠点は何ですか?
-
144. Rabbitmq にはブロードキャスト タイプがいくつありますか?
-
145. Rabbitmq は遅延メッセージキューをどのように実装しますか?
-
146. Rabbitmq クラスターの用途は何ですか?
-
147. Rabbitmq ノードの種類は何ですか?
-
148. Rabbitmq クラスターを構築するときに注意すべき問題は何ですか?
-
149. Rabbitmq の各ノードは他のノードの完全なコピーですか? なぜ?
-
150. Rabbitmq クラスター内の唯一のディスク ノードがクラッシュするとどうなりますか?
-
151. Rabbitmq にはクラスターノードの停止順序に関する要件はありますか?
十五、Kafka
-
152. Kafka は動物園の飼育員から独立して使用できますか? なぜ?
-
153. Kafka にはデータ保持戦略がいくつありますか?
-
154. Kafka は、7 日間のデータと 10G のデータを同時に消去するように設定されています。5 日目までに、メッセージは 10G に達しました。この時点で、Kafka はどのように処理しますか?
-
155. Kafka の実行が遅くなる原因は何ですか?
-
156. Kafkaクラスタを利用する際の注意点は何ですか?
16. 動物園の飼育員
-
157.動物園の飼育員とは何ですか?
-
158. 動物園の飼育員にはどのような役割がありますか?
-
159. Zookeeper にはいくつの展開モードがありますか?
-
160. Zookeeper はどのようにしてマスター ノードとスレーブ ノードの状態の同期を確保しますか?
-
161. クラスター内にマスター ノードがあるのはなぜですか?
-
162. クラスター内に 3 つのサーバーがあり、ノードの 1 つがダウンしています。現時点でも Zookeeper は使用できますか?
-
163. 飼育員への通知の仕組みについて教えてください。
セブンティーン、MySQL
-
164. データベースの 3 つのパラダイムとは何ですか?
-
165. 自動インクリメントテーブルに合計7つのデータがあり、最後の2つのデータを削除し、mysqlデータベースを再起動し、別のデータを挿入します。このときのidは何ですか?
-
166. 現在のデータベースのバージョンを取得するにはどうすればよいですか?
-
167. ACIDとは何ですか?
-
168. char と varchar の違いは何ですか?
-
169. float と double の違いは何ですか?
-
170. mysql の内部結合、左結合、右結合の違いは何ですか?
-
171. mysql インデックスはどのように実装されていますか?
-
172. mysql インデックスが要件を満たしているかどうかを確認するにはどうすればよいですか?
-
173. データベースのトランザクション分離について教えてください。
-
174. mysql で一般的に使用されるエンジンについて教えてください。
-
175. mysqlの行ロックとテーブルロックについて教えてください。
-
176. 楽観的ロックと悲観的ロックについて話しますか?
-
177. mysql の問題をトラブルシューティングするにはどのような方法がありますか?
-
178. mysqlのパフォーマンスを最適化するにはどうすればよいですか?
18. レディス
-
179. Redisとは何ですか? どのような使用シナリオがありますか?
-
180. Redisにはどのような機能がありますか?
-
181. Redis と memecache の違いは何ですか?
-
182. Redis がシングルスレッドなのはなぜですか?
-
183. キャッシュペネトレーションとは何ですか? どうやって対処すればいいのでしょうか?
-
184. Redis はどのようなデータ型をサポートしていますか?
-
185. Redis でサポートされている Java クライアントは何ですか?
-
186. ジェダイとレディソンの違いは何ですか?
-
187. キャッシュとデータベースのデータの一貫性を確保するにはどうすればよいですか?
-
188. Redis を永続化する方法は何通りありますか?
-
189. Redis は分散ロックをどのように実装しますか?
-
190. Redis 分散ロックの欠点は何ですか?
-
191. Redis はメモリをどのように最適化しますか?
-
192. Redis の排除戦略とは何ですか?
-
193. Redis の一般的なパフォーマンスの問題は何ですか? どうやって解決すればいいでしょうか?
19、JVM
-
194. jvm の主なコンポーネントについて教えてください。そしてその役割は?
-
195. JVM ランタイム データ領域について教えてください。
-
196. スタックの違いについて教えてください。
-
197. キューとスタックとは何ですか? 違いは何ですか?
-
198. 親の委任モデルとは何ですか?
-
199. クラスローディングの実行処理について教えてください。
-
200. 物体がリサイクル可能かどうかを判断するにはどうすればよいですか?
-
201. Javaの参照型とは何ですか?
-
202. jvm が持つガベージ コレクション アルゴリズムを教えてください。
-
203. jvm にはどのような種類のガベージ コレクターがあるのか教えてください。
-
204. CMS ガベージ コレクターについて詳しく説明してください。
-
205. 新世代ガベージコレクタと旧世代ガベージコレクタとは何ですか? 違いは何ですか?
-
206. 世代別ガベージ コレクターがどのように動作するかを簡単に説明してください。
-
207. JVMチューニングツールについて教えてください。
-
208. 一般的に使用される JVM チューニング パラメーターは何ですか?
MyBatisの面接での質問
-
1. マイバティスとは何ですか?
-
2. マイベイトのメリット:
-
3. MyBatis フレームワークの欠点:
-
4. MyBatis フレームワークが適用される場合:
-
5. MyBatis と Hibernate の違いは何ですか?
-
6. #{} と ${} の違いは何ですか?
-
7. エンティティクラスの属性名がテーブルのフィールド名と異なる場合はどうすればよいですか?
-
8. ファジークエリのようなステートメントを記述するにはどうすればよいですか?
ZooKeeper のインタビューでの質問
-
Zookeeper のロード バランシングと nginx のロード バランシングの違い
-
Zookeeper Watcher メカニズム - データ変更通知
-
クライアントはウォッチャーの実装を登録します
-
動物園の飼育員はトランザクションの逐次一貫性をどのようにして確保しているのでしょうか?
-
Zookeeper のノードへの監視通知は永続的ですか? なぜ永遠ではないのでしょうか?
-
zk ノードのダウンタイムにどう対処するか?
ダボの面接での質問
-
ダボを使用する理由
-
デフォルトではどのような通信フレームワークが使用されますか?また、代替手段はありますか?
-
サービスコールはブロックされていますか?
-
一般的にどのようなレジストリが使用されますか? 別のオプションはありますか?
-
デフォルトではどのシリアル化フレームワークが使用されますか?他に何を知っていますか?
-
Dubbo の全体的なアーキテクチャ設計の層は何ですか?
…………
Elasticsearchの面接での質問
-
elasticsearch についてどのくらい知っていますか。会社の es クラスター アーキテクチャ、インデックス データ サイズ、フラグメントの数、いくつかのチューニング方法について話してください。
-
Elasticsearch インデックス データの詳細な方法、チューニング、デプロイ方法
-
elasticsearch がマスター選挙を実装する方法
-
Elasticsearch をデプロイする場合の Linux 設定の最適化方法は何ですか
-
Elasticsearch でドキュメントを更新および削除するプロセスを詳しく説明します。
-
Elasticsearch をデプロイする場合、Linux 設定の最適化方法は何ですか?
……
Redis の面接での質問
-
Redis を使用する利点は何ですか?
-
Redis はシングルプロセスおよびシングルスレッドですか?
-
Redis の永続化メカニズムとは何ですか? それぞれの長所と短所は?
-
Redis の一般的な異常な問題と解決策 (雪崩、侵入など)
-
Redis の期限切れキー削除戦略?
-
Redis がすべてのデータをメモリに配置する必要があるのはなぜですか?
-
Redis クラスターのマスター/スレーブ レプリケーション モデルとは何ですか?
-
Redis キーの有効期限と永続的な有効性を設定するにはどうすればよいですか?
MySQLの面接での質問
-
MySQL関連のストレージエンジン。
-
MySQL インデックス実装の原則。
-
MySQL データベースのロック。
-
MySQL の SQL チューニング。
-
MySQL サブテーブルとサブデータベースのグローバル ID。
…………
Java 同時プログラミング
-
Javaのデーモンスレッドとネイティブスレッドの違いは何ですか?
-
マルチスレッドにおけるコンテキストスイッチングとは何ですか?
-
Java で使用されるスレッド スケジューリング アルゴリズムとは何ですか?
-
スレッド グループとは何ですか? Java でスレッド グループが非推奨になったのはなぜですか?
-
Java の Executor と Executor の違いは?
-
同時プログラミングの 3 つの要素?
-
スレッドプールとは何ですか? 作成するにはどのような方法がありますか?
……
春の面接の質問
-
1. Spring IoC についての理解について話してください。
-
2. Spring DI についての理解について話してください。
-
3. BeanFactory インターフェースと ApplicationContext インターフェースの違いは何ですか?
-
4. あなたがよく知っている Spring コア クラスとその機能を紹介してください。
-
5. Spring のトランザクションの理解について教えてください。
-
6. Spring のトランザクション実装について教えてください。
-
7. Spring の依存性注入とは何ですか?
……
カフカのインタビューでの質問
-
Kafka と従来の MQ メッセージング システムの間には 3 つの重要な違いがあります
-
Kafka の ack の 3 つのメカニズムについて話す
-
消費者の失敗、ライブロック問題をどう解決するか?
-
(スタンドアロンではなく) 分散された Kafka の場合、メッセージの順次消費を保証する方法
-
Kafka はどのようにして重複データを消費しないのでしょうか? 例えば控除ですが、繰り返し控除することはできません。
....