Java エンジニアはスキルが高い人が多いのですが、一次面接で頭が痛くなり、面接 10 件中 9 件で落とされ、それでも無名の中小企業に行きました。
問題は、面接にはスキルがあるのに、あなたは面接官に自分の能力を表現しないことです。
-
新卒者: 履歴書、面接プロジェクト、面接スピーチはどのように準備しますか? Spring の基礎となるロジックは何ですか?
-
経験1~3年のプログラマー: 面接で話すべき貴重なスキルは何ですか? これらの貴重なテクノロジーを使って自分のスキルを最大限に発揮するにはどうすればよいでしょうか? 分散コンポーネントの基礎となるロジックは何ですか?
-
3 ~ 5 年の経験を持つプログラマー: k8 を構築して実践するにはどうすればよいですか?
すべての Java プログラマはこれらの問題に遭遇したことがあると思います。また、解決方法がまだ分からず失敗を繰り返している人もいます。そのため、最終的には面接の合格率が非常に低くなります。
履歴書が就職活動の足がかりである場合、Java テクノロジーのあらゆる質問に答えるスキルと方法が、面接に合格できるかどうかの鍵となります。
エンジニアがJava面接の各質問のスキルを習得し、面接の通過率を向上させるために、Spring、JVMなど、大手企業の面接でよく聞かれる面接の質問をいくつか紹介します。 、Java の基本、Java コレクション、Java 同時プログラミング、マイクロサービス、ネットワーク、Kafka、分散、Redis、Dachang インタビュー ソリューション、分散トランザクション、デザイン パターン、アルゴリズム、データ構造、MySQL など。
建築家に必要なスキル: (アリの面接で必ず尋ねる)
マルチスレッドと同時実行に関する面接の質問:
JAVA 同時実行ナレッジ ベース:
-
Java でマルチスレッドを実装するにはいくつかの方法があります
-
Threadクラスを継承する
-
Runnable インターフェイスを実装します。
-
ExecutorSenvice.Callable.Future には戻り値 Thread があります
-
スレッドプールに基づく
-
4つのスレッドプール
-
実行中のスレッドを停止する方法
-
Notice0 と NotifyAll0 の違いは何ですか?
-
sleep0 と wait0 の違いは何ですか?
-
揮発性とは何ですか? 秩序は保証されますか?
-
Threadクラスのstart0メソッドとrun0メソッドの違いは何ですか?
-
wait、notify、および nfifAllI メソッドがスレッド クラスにないのはなぜですか?
-
wait メソッドと ntify メソッドが同期ブロックで呼び出されるのはなぜですか?
-
JavaのinterruptedメソッドとisInterrupteddメソッドの違いは?
-
Java の synchronizedLock と ReentrantLock の違いは何ですか?
-
3 つのスレッド T1、T2、T3 がありますが、確実に順次実行するにはどうすればよいでしょうか?
-
SynchronizedMap と ConcurrentHashMap の違いは何ですか?
-
スレッドセーフとは何ですか
-
Thread クラスの yield メソッドは何をするのでしょうか?
-
Javaスレッドプールのsubmit0メソッドとexecute0メソッドの違いは何ですか?
-
同期キーワードについての理解を教えてください
-
synchronized キーワードの使用方法を教えてください。プロジェクトで使用したことがありますか? synchronized キーワードを使用する 3 つの主な方法は何ですか?
-
スレッド セーフとは何ですか? Vector はスレッド セーフ クラスですか?
-
volatile キーワードは何をするのでしょうか?
-
スレッド プールについての理解を簡単に説明してください
-
スレッドのライフサイクル (状態)
JVM の面接での質問:
-
シリアル ガベージ コレクター (シングル スレッド、コピー アルゴリズム)
-
ParNew ガベージ コレクター (シリアル + マルチスレッド)
-
並列 Scavenge コレクター (マルチスレッド コピー アルゴリズム、効率的)
-
Serial Old コレクター (シングルスレッド マークアップ アルゴリズム)
-
Parallel Old Collector (マルチスレッド マーキング アルゴリズム)
-
CMS コレクター (マルチスレッド マークスイープ アルゴリズム)
-
G1コレクター
-
JVMクラスロードメカニズム
-
クラスローダー
-
親の代表団
-
OSGI (ダイナミックモデリングシステム)
-
構造を動的に変更する
-
モジュール式プログラミングとホットスワップ
-
JVMメモリモデル
-
ネイティブメソッドスタック
-
プログラムカウンター
-
ヒープ
-
メソッド領域
-
世代別リサイクル
-
ヒープとスタックの違い
-
FullGC はいつトリガーされますか
-
Java 仮想マシンとは何ですか? Java が「プラットフォームに依存しないプログラミング言語」と呼ばれるのはなぜですか?
-
オブジェクト割り当てルール
-
JM がクラス ファイルをロードする原理的なメカニズムについて説明してください。
-
Javaオブジェクト作成プロセス
Java での IO と NIO の面接の質問:
-
Java に 10 ストリーム?
-
Java 10 と NIO の違い
-
一般的に使用される io クラスは何ですか
-
バイトストリームと文字ストリームの違い
-
ブロック10モデル
-
ノンブロッキング10モデル
-
10モデルを多重化
-
信号駆動10モデル
-
非同期10モデル
-
ジャワニオ
-
NIOのバッファ
-
NIO のノンブロッキング
-
チャネル
-
バッファ
MySQL の面接での質問:
-
サブデータベースサブテーブル後のd主キーの扱い方
-
ストアド プロシージャ (特定の関数の SQL ステートメントのセット)
-
ストアド プロシージャの最適化のアイデア
-
トリガー(自動で実行できるプログラム)
-
データベースの同時実行戦略
-
MySQL にはどのような種類のロックがありますか?
-
MySQL のさまざまなテーブルとは何ですか?
-
MySQL データベースの MyISAM と InnoDB の違いを簡単に説明します
-
MySQL の InnoDB でサポートされている 4 つのトランザクション分離レベルの名前と、それらの段階ごとの違いは何ですか?
-
CHAR と VARCHAR の違いは何ですか?
-
主キーと候補キーの違いは何ですか?
-
myisamchkは何に使用されますか?
-
MyISAM 静的と MyISAM 動的の違いは何ですか?
-
テーブルに TIMESTAMP として定義された列がある場合はどうなりますか?
-
テーブルに定義されているすべてのインデックスを確認するにはどうすればよいですか?
-
LIKE ステートメントの % と _ は何を意味しますか?
-
列比較演算子とは何ですか?
-
BLOB と TEXT の違いは何ですか?
-
MySQL fetch.array と MySQL fetch オブジェクトの違いは何ですか?
-
MyISAM テーブルはどこに保存されますか?また、どのような形式で保存されますか?
-
MySQL はどのように DISTINCT を最適化しますか?
-
上位50位を表示するにはどうすればよいですか?
-
インデックスの作成に使用できる列の数は何ですか?
-
NOW () と CURRENT_DATE () の違いは何ですか?
-
非標準の文字列型とは何ですか?
-
汎用 SQL 関数とは何ですか?
-
MySQL はトランザクションをサポートしていますか?
Redis のインタビューでの質問:
-
Redis はシングルプロセスおよびシングルスレッドですか?
-
文字列型のスマート ストレージの最大容量はどれくらいですか?
-
Redis の永続化メカニズム
-
キャッシュなだれ、キャッシュペネトレーション、キャッシュウォームアップ、キャッシュ更新、キャッシュダウングレードなど。
-
ホットデータとコールドデータとは何ですか
-
シングルスレッド Redis がなぜこれほど速いのか
-
Redisのデータ型と各データ型の利用シナリオ
-
Redis の有効期限戦略とメモリ削除メカニズム
-
Redis の一般的なパフォーマンスの問題と解決策は?
-
Redis 操作がアトミックである理由と、アトミック性を確保する方法は何ですか?
-
Redis トランザクション
-
Redis の永続化メカニズムとは何ですか? それぞれの長所と短所は何ですか?
-
Redis の一般的なパフォーマンスの問題と解決策:
-
Redis の期限切れキー削除戦略?
-
Redisリサイクル戦略(海洋排除戦略) ?
-
edis はなぜすべてのデータをメモリに置く必要があるのですか?
-
Redis の同期メカニズムを理解していますか?
-
パイプラインの利点は何ですか?パイプラインを使用する理由は何ですか?
-
Redis クラスターを使用したことがありますか? クラスターの原理は何ですか?
-
Redis クラスター ソリューションによってクラスター全体が使用できなくなるのは、どのような状況ですか?
-
Redis でサポートされている Java クライアントは何ですか? 公式に推奨されているのはどれですか?
-
ジェディスとレディソンの長所と短所は何ですか?
-
Redis はどのようにパスワードを設定し、パスワードを確認しますか?
MongoDB の面接での質問:
-
移行中のチャンク上のドキュメントを更新するとどうなりますか?
-
MongoDB は A:(B,C} にインデックスを構築します。クエリ A:{B,C] と A:{C,B) は両方ともインデックスを使用しますか?
-
シャードが停止しているか遅いときにクエリが開始されるとどうなりますか?
-
MongoDB はストアド プロシージャをサポートしていますか? サポートしている場合、その使用方法は何ですか?
-
MongoDB の GridFS メカニズムを理解する方法、MongoDB がファイルの保存に GridFS を使用する理由は何ですか?
-
NoSQL データベースとは何ですか? NoSQL と RDBMS の違いは何ですか? NoSQL データベースはどのような状況で使用され、使用されませんか?
-
MongoDB はストアド プロシージャをサポートしていますか? サポートしている場合、その使用方法は何ですか?
-
MongoDB の GridFS メカニズムを理解する方法、MongoDB がファイルの保存に GridFS を使用する理由は何ですか?
-
MongoDB データ ファイルはなぜこれほど大きいのですか?
-
移行中のチャンク上のドキュメントを更新するとどうなりますか?
-
MongoDB は A:(B,C} にインデックスを構築します。クエリ A:{B,C] と A:{C,B) は両方ともインデックスを使用しますか?
-
シャードが停止または遅い場合に何が起こるか
-
MongoDB におけるアナライザーの役割は何ですか?
-
ユーザーがオブジェクトの属性を削除すると、その属性はストレージ層から削除されますか?
-
ログ機能を安全なバックアップに使用できますか?
-
更新操作をすぐにディスクに fsync しますか?
-
トランザクション/ロックを実行するにはどうすればよいですか?
-
マスターまたはプライマリとは何ですか?
-
getLasterror の役割
-
シャーディングとレプリケーションはどのように機能しますか?
-
データが複数のシャードに拡張されるのはいつですか?
-
移行中のチャンク上のドキュメントを更新しようとするとどうなりますか?
MyBatis の面接での質問:
-
通常、Xml マッピング ファイルは、それに対応する Dao インターフェイスを記述します。
-
この Dao インターフェイスの動作原理は何ですか? Dao インターフェイスのメソッドに異なるパラメーターがある場合、メソッドはオーバーロードできますか?
-
自動生成された (主) キーの値を取得するにはどうすればよいですか?
-
マッパーで複数のパラメータを渡すにはどうすればよいですか?
-
Mybatis 動的 SQL の用途は何ですか? 実行原理? 動的 SQL にはどのような種類がありますか?
-
XML マッピング ファイルには、一般的な selectlinsertlupdaeldelete タグの他にどのようなタグがありますか?
-
MybatisのXmlマッピングファイルでは、異なるXmlマッピングファイルのIDを重複して使用できますか?
-
Mybatis が半自動 ORM マッピング ツールであるのはなぜですか? それと完全自動の違いは何ですか?
-
1対1、1対多のリレーショナルクエリ?
-
MyBatis は 1 対 1 を実装する方法が何通りありますか? それはどのように機能しますか?
-
MyBatis の実装 - さまざまな方法がありますが、どのように操作すればよいでしょうか?
-
Mybatis は遅延読み込みをサポートしていますか? サポートしている場合、その実装原理は何ですか?
-
Mybatis の 1 次キャッシュと 2 次キャッシュ
-
MyBatisインターフェースバインディングとは何ですか?実装方法は何ですか?
-
MyBatis のマッパー インターフェイス呼び出しを使用する場合の要件は何ですか?
-
Mapperの書き方にはどのようなものがあるのでしょうか?
-
Mybatis プラグインの動作原理とプラグインの作成方法を簡単に説明します。
-
MyBatis は 1 対 1 を実装する方法が何通りありますか? それはどのように機能しますか?
春の面接での質問:
-
Spring AOP と AspectU AOP の違いは何ですか?
-
Spring のプロキシを理解するにはどうすればよいですか?
-
織りとは何ですか?
-
Spring MVC フレームワークの用途は何ですか?
-
DispatcherServlet のワークフローを説明する
-
WebApplicationContext の導入
-
春とは何ですか?
-
Spring フレームワークを使用する利点は何ですか?
-
Spring はどのようなモジュールで構成されていますか?
-
Spring の IOC および AOP メカニズム
-
Spring の Autowired キーワードと Resource キーワードの違い
-
依存性注入にはいくつかの方法がありますが、それは何ですか?
-
春とは何か教えてください
-
Spring MVCプロセス
-
Spring MVCとは
-
SpringMVC はリダイレクトと転送をどのように設定しますか?
-
SpringMVCでよく使われるアノテーションとは何ですか?
-
Spring の AOP の理解
-
Spring の IOC の理解
-
春豆のライフサイクルを説明する
-
Spring でサポートされるいくつかの Bean の範囲について説明します。
-
Spring が XML に基づいて Bean を注入するためのいくつかの方法
-
Spring フレームワークで使用されるデザイン パターン
-
コアコンテナ(アプリケーションコンテキスト)モジュール
-
BeanFactory - BeanFactory 実装の例。
-
XML ビーンファクトリー
-
AOPモジュールの説明
Spring Boot の面接での質問:
-
spring-boot-starter-web で Tomcat の代わりに Jetty を使用できますか?
-
Spring Boot を使用して WAR ファイルを生成するにはどうすればよいですか?
-
Spring Boot を使用して別のサーバーにデプロイするにはどうすればよいですか?
-
RequestMapping と GetMapping の違いは何ですか?
-
実際のアプリケーションで Spring Data Rest を使用することを推奨しないのはなぜですか?
-
Spring Initializer でプロジェクトのパッケージ名を変更するにはどうすればよいですか?
-
application.propertier で構成できるプロパティの完全なリストはどこで見つけられますか?
-
JPA と Hibernate の違いは何ですか?
-
Spring Boot を使用してインメモリ データベース H2 に接続された JPA アプリケーションを起動するには、どのような依存関係が必要ですか?
-
構成を行わずに JPA のデフォルト実装として Hibernate を選択するにはどうすればよいですか?
-
指定されたデータベース接続情報はどこにありますか? H2 に自動的に接続することはどのようにしてわかりますか?
-
MSSQL や orcale などの外部データベースに接続するにはどうすればよいですか?
-
Spring Boot によって構成されたデフォルトの H2 データベースの名前は上記です? デフォルトのデータベース名が testdb であるのはなぜですか?
-
H2 がクラスパスにない場合、上記の状況は発生しますか?
-
トランザクション管理として ReadOnly を使用した例を挙げていただけますか?
-
Spring Boot ユーザー アプリケーションのカスタム構成を公開する最良の方法は何ですか?
-
設定ファイルの要件は何ですか?
-
構成ファイルを使用して、Spring Boot を通じて特定の環境の構成を構成するにはどうすればよいですか?
-
Maven を使用して Spring Boot アプリケーションをセットアップするにはどうすればよいですか?
-
特定の自動構成を無効にするにはどうすればよいですか?
-
Spring Boot はどのような外部構成をサポートしていますか?
-
Spring Boot アプリケーションをテストするにはどうすればよいですか?
-
Spring Boot アクチュエーターの用途は何ですか?
-
SpringBoot の静的ホームページのデフォルトの場所はどこに配置できますか?
-
SpringBoot における静的リソースのダイレクト マッピングの優先順位は何ですか?
Spring Cloud の面接での質問:
-
SpringBoot と SpringCloud の違いは何ですか?
-
Hystrix サーキットブレーカーとは何ですか? 必要ですか?
-
RPCの実現原理について語る
-
マイクロサービスの長所と短所?開発プロジェクトで遭遇した落とし穴について教えてください。
-
春雲とダボの違いは何ですか?
-
REST と RPC の比較
-
マイクロサービス テクノロジー スタックをご存知ですか?
-
マイクロサービスはどのようにして独立して通信するのでしょうか?
-
springcloud はサービス登録をどのように実装しますか?
-
エウレカと動物園の飼育員の違い
-
エウレカの自己防衛機構とは何ですか?
-
リボンとは何ですか?
-
フェイジンとは何ですか?その利点は何ですか?
-
リボンとフェーンの違いは何ですか?
-
Springクラウドバスとは何ですか?
-
スプリングクラウドのサーキットブレーカーの役割?
-
スプリングクラウドゲートウェイ?
-
サービス レジストリとして、Eureka が Zookeeper よりも優れている点は何ですか?
-
リボン負荷分散とは何ですか?
-
リボンの負荷分散でできることは何ですか?
-
zuu|ルーティングゲートウェイとは何ですか
-
分散構成センターでは何ができるのでしょうか?
データ構造に関するインタビューの質問:
-
スタック
-
列
-
リンクリスト (リンク)
-
ハッシュ表
-
二分木を並べ替える
-
フロントタッセルツリー
-
赤黒い木
-
B-TREE
-
ビットマップ
アルゴリズム面接の質問:
-
データ内に {1,2,3,4,5,6,7,8,9} があります。順序をランダムにシャッフルして新しい配列を生成してください (コードで実装してください)
-
整数が2の累乗かどうかを判定するコードを記述します(コードは実装してください。APIメソッドを呼び出さないでください)。
-
今日が 2015 年 3 月 1 日の日曜日であると仮定して、13 か月と 6 日後の曜日と今からの日数を計算してください (コードを使用して実装してください。API メソッドを呼び出さないでください)。
-
A と B という 2 つのカゴがあります。カゴ A には卵が入っており、カゴ B にはリンゴが入っています。2 つのカゴ内のアイテムの交換をオブジェクト指向の思考を使用して実現してください (コードを使用して実装してください)
-
二分探索
-
バブルソートアルゴリズム
-
挿入ソートアルゴリズム
-
クイックソートアルゴリズム
-
ヒルソートアルゴリズム
-
マージソートアルゴリズム
-
バケットソートアルゴリズム
-
基数ソートアルゴリズム
-
枝刈りアルゴリズム
-
バックトラッキングアルゴリズム
-
最短経路アルゴリズム
-
最小スパニング ツリー アルゴリズム
-
AES
-
RSA
-
CRC
-
MD5
-
さらにアルゴリズムの演習を行う
カフカのインタビューでの質問:
-
消費者グループ
-
トピックのリストを取得する方法
-
プロデューサとコンシューマのコマンドラインは何ですか?
-
消費者はプッシュ派ですか、それともプル派ですか?
-
消費状況の追跡を維持するための Kafka の方法について話す
-
マスターとスレーブの同期についての話
-
なぜメッセージ システムが必要なのでしょうか。mysql ではその需要を満たすことができないのでしょうか?
-
カフカにとって動物園の飼育員の役割は何ですか?
-
Kafka がノードがまだ生きているかどうかを判断する 2 つの条件は何ですか?
-
Kafka と従来の MQ メッセージング システムの間には 3 つの重要な違いがあります
-
Kafka の ack の 3 つのメカニズムについて話します|
-
消費者がオフセットを自動的に提出せずに、アプリケーションによって提出するにはどうすればよいでしょうか?
-
消費者の失敗、オーバーロックの問題を解決するにはどうすればよいですか?
-
消費場所をコントロールする方法
マイクロサービスの面接での質問:
-
マイクロサービスにおけるコンテナの目的は何ですか?
-
マイクロサービス アーキテクチャにおける DRY とは何ですか?
-
消費者主導契約 (CDC) とは何ですか?
-
マイクロサービスにおける Web、RESTful API の役割は何ですか?
-
マイクロサービス アーキテクチャにおけるセマンティック モニタリングについて何を知っていますか?
-
部門横断的なテストはどのように行うのでしょうか?
-
テストにおける不決定性を排除するにはどうすればよいでしょうか?
-
モックとスタブの違いは何ですか?
-
マイク・コーンのテストピラミッドについてどのくらい知っていますか?
-
Docker の目的は何ですか?
-
カナリアリリースとは何ですか?
-
継続的インテグレーション (CI) とは何ですか?
-
継続的な監視とは何ですか?
-
マイクロサービス アーキテクチャにおけるアーキテクトの役割は何ですか?
-
マイクロサービスを使用してステートマシンを作成できますか?
-
マイクロサービスにおけるリアクティブ スケーリングとは何ですか?
Elasticsearchの面接での質問
-
Elasticsearch をデプロイする場合の Linux 設定の最適化方法は何ですか
-
ウセンスの内部構造はどうなっているのでしょうか?
-
Elasticsearch はマスター選出をどのように実現しますか?
-
Elasticsearch のノード (たとえば、合計 20)、そのうち 10 個が選択されています
-
1 人のマスター、別の 10 人が別のマスターを選択します。どうすればよいですか?
-
クライアントがクラスターに接続するとき、リクエストを実行する特定のノードをどのように選択しますか?
-
Elasticsearch のドキュメントのインデックス作成プロセスを詳しく説明します。
-
Elasticsearch でドキュメントを更新および削除するプロセスを詳しく説明します。
-
Elasticsearch検索のプロセスを詳しく説明する
-
Elasticsearchで、単語に応じて対応する転置インデックスを見つける方法
-
Elasticsearch をデプロイする場合、Linux 設定の最適化方法は何ですか?
-
GCに関して、Elasticsearchを使用する際に注意すべき点は何ですか?
-
Elasticsearch は、大量のデータ (数億) の集約をどのように実装しますか?
-
Elasticsearch は、同時実行下での読み取りと書き込みの一貫性をどのように確保しますか?
-
Elasticsearch クラスターのステータスを監視するにはどうすればよいですか?
-
e コマース検索の全体的な技術アーキテクチャを紹介します。
-
パーソナライズされた検索ソリューションについて教えてください。
-
辞書ツリーについてご存知ですか?
-
スペルミスの修正はどのように実装されていますか?
要約する
技術管理者であっても、アーキテクトであっても、どの道が正しいとか間違っているという絶対的な方法はなく、最も重要なのは自分に合うことです。中小企業にはアーキテクトという概念がないかもしれませんし、大企業でアーキテクトの地位を勝ち取るのはそう簡単ではありません。しかし、いずれにしても常に新しい技術を学び自分のレベルを上げていくことが必要で、どの会社にいても技術レベルが高くないと楽しめません。