CRUDプログラマーの5年間、アウトソーシングから360を成功裏に上陸させるプロセス全体。

前に書く


本日は、インペリアルキャピタルでの5年の実務経験を持つJavaエンジニアのインタビュー経験の概要をお伝えします。これらのインターネット企業がどのような質問をするのかを見ていきます。皆さんのインタビューに役立つことを願っています。

Java開発にも5年の経験があります。4月上旬に面接体験旅行を始めました。約20日後、大手インターネット企業、一次・二次大企業、新興企業との面接を行い、 Qihoo360などを含むいくつかのオファー。

まず、インタビュアーごとに異なるインタビュースタイルが必要です。これは、最近のインタビュー中のJava開発プロセスにおける問題のほとんどの要約です。包括的な分類には、Javaの基盤、フレームワーク、マルチスレッド、ネットワーク通信、データベース、およびデザインパターンが含まれます。アルゴリズムおよびその他のモジュール。

3年の実務経験を持つJavaプログラマーが持つべきスキル。これはJavaプログラマーが気にするコンテンツかもしれません。ここで説明したいのは、以下の内容はあなたが知っておくべきことではありませんが、もっとマスターすれば、最終的な評価と給与は間違いなく高くなります。

1つは、Javaの基本です

  1. Stringクラスがfinalである理由。
  2. HashMapのソースコード、実装の原則、および基礎となる構造。
  3. 振り返ってみると、Class.forNameとclassloaderの違い
  4. セッションとCookieの違いと接続、セッションのライフサイクル、および複数のサービスが展開されている場合のセッション管理。
  5. Javaのキューとは何ですか?違いは何ですか。
  6. JavaのメモリモデルとGCアルゴリズム
  7. Java配列とリンクリストの2つの構造の操作効率。条件(最初から開始、最後から開始、途中から開始)、どの操作(挿入、検索、削除)が効率的か
  8. Javaメモリリークの調査と配置:jmap、jstackなどの使用。

2、マルチスレッド

これも必見です。3年間の作業経験があるため、基本的にマルチスレッドの実装方法については質問しません。スレッドとRunnableの違いと接続、スレッドが複数回開始されたときに何が起こるか、スレッドの状態について詳しく質問します。持っています。もちろん、これは最も基本的なことです。予期せぬことに、同じ質問がいくつかのインタビューでほぼ同時に行われました。質問の方法は同じではありませんでした。要約すると、これは次の意味です。

4つのディスクC、D、E、およびFのサイズをそれぞれカウントする4つのスレッドThread1、Thread2、Thread3、およびThread4があり、すべてのスレッドがカウントされ、要約のためにThread5スレッドに渡される場合、これはどのように行う必要がありますか達成されますか?

スマートネチズンはこの質問に対する答えを持っていますか?難しいことではありませんが、java.util.concurrentの下に既製のクラスがあります。

さらに、スレッドプールもよくある質問です。一般的に使用されるスレッドプールはいくつですか。これらのタイプのスレッドプールの違いと接続は何ですか?スレッドプールの実装原理は何ですか?実用的なものでは、いくつかの特定のシナリオが提供され、このシナリオで使用する必要があるスレッドプールに答えることができます。

最後に、このインタビューには多くの質問はありませんが、マルチスレッドの同期とロックも重要なポイントです。

同期ロックとReentrantLockの違い、同期ロックの通常の方法と静的ロックの方法、デッドロックの原理とトラブルシューティング方法など。マルチスレッドに関して、マルチスレッドと同時プログラミングのインタビューの質問を以前の記事にまとめました。

 

記事のドキュメントとインタビュー資料が必要な友人は、この記事を気に入って、アシスタントvx:bjmsb10を追加して無料で入手できます。

 

三、私。

IOはファイルIOとソケットIOに分けられます。ファイルIOは基本的に要求されず、要求もありません。通常どおりに使用しても問題ありません。ファイルIOはすべてIOをブロックしていることに注意してください。

ソケットIOはより重要な部分です。理解する必要があるのは、ブロッキング/非ブロッキング、同期/非同期の違い、およびブロッキングIO、非ブロッキングIO、多重化IO、非同期IOの4つのIOモデルを理解することです。 SocketIOはこれら4つのモデルとどのように関連していますか。

これはもっと基本的なことですが、深く掘り下げてみると、NIOの原理、NIOが属するIOモデル、NIOの3つの主要コンポーネントなどについてお聞きします。これは少し難しいです。当時、私はNIOについても学びました。長い間。言うまでもなく、NIOは厳密には非ブロッキングIOではありませんが、多重化IOである必要があります。インタビューに回答するときは、この詳細に注意してください。NIOについて話すと、セレクターの選択方法でブロックされ、インタビュアーの好意が高まります。

Nettyを使用したことがある場合は、Nettyについて質問するかもしれません。結局のところ、このフレームワークは基本的に最高のNIOフレームワークであり(Minaは実際には優れていますが、全体的にはまだNettyほど良くありません)、ほとんどのインターネット企業もNettyを使用しています。 。

4、JDKソースコード

高給を取得したい場合は、JDKのソースコードを読む必要があります。上記のコンテンツは、特定のシナリオに関連している場合もあります。JDKソースコードは、通常、それを詳しく調べたいかどうかを確認するためのものです。その過程で、JDKのソースコードについて多くの質問がありました。最も難しい質問の1つは、StringのhashCode()メソッドがどのように実装されているかです。幸い、私は通常、Stringのソースコードをたくさん読んで答えました。大まかに。JDKソースコードは実際には要約するものではありません。これは純粋に個人的なものであり、より重要なソースコードを要約しています。

  1. List、Map、Set実装クラスのソースコード
  2. ReentrantLock、AQSのソースコード
  3. AtomicIntegerの実現原理。主にCASメカニズムと、CASメカニズムを使用してAtomicIntegerを実装する方法を説明します。
  4. スレッドプールの実現原理
  5. Objectクラスのメソッドと各メソッドの役割

これらは実際には非常に厳しいものです。昨年、私は基本的にJDKの重要なクラスのソースコードを研究しました。それは本当に時間と労力を要しました。もちろん、インタビューだけでなく、振り返る価値があります。

ファイブ、フレーム

  1. SpringFrameworkで参照する必要のあるjarパッケージとこれらのjarパッケージの目的
  2. srpingMVCの原理
  3. springMVCアノテーションの意味
  4. SpringのbeanFactoryとApplicationContextの関係と違い
  5. スプリングインジェクションのいくつかの方法
  6. 春はどうやって物事管理を実現するのか
  7. springIOCとAOPの原則
  8. 春の周期的注入の方法

 

 

6、データベース

データベースはまた、おそらくそれについて尋ねます。ユニオンとユニオンオールの違い、左結合、いくつかのインデックス、およびそれらの違いなど、いくつかの基本については説明しません。より重要なことは、データベースパフォーマンスの最適化です。データベースパフォーマンスの最適化について何も知らない場合は、時間がある場合は、インタビューの1〜2日前に、SQLの基本とSQLの最適化の内容を準備することをお勧めします。

しかし、データベースについては心配しないでください。会社には多くの部門があります。データベースに精通しておらず、基本的な技術が非常に優れている場合は、Jiuchengがあなたを望んでいます。あなたはそうする部門に配置されると推定されます。非常に高いデータベース使用量は必要ありません。演習。

 

 

7、データ構造とアルゴリズム分析

データ構造とアルゴリズム分析は、プログラマーにとってそうでないよりも優れており、仕事で間違いなく役に立ちます。配列とリンクリストが基盤です。スタックとキューは少し深くなりますが、難しくはありません。ツリーは非常に重要です。より重要なツリーはAVLツリーと赤黒木です。特定の実装を知る必要はありませんが、バイナリ検索ツリーとは何かを知っている必要があります。バランスツリーとは何ですか。AVLツリーと赤黒ツリーの違いです。私はインタビューを覚えています、インタビュアーはデータベースのインデックスについて私に話しました、彼は私に尋ねました:

インデックスの実装に使用されるデータ構造を知っていますか?

使用されているハッシュテーブルに答えてください。答えは間違っています。彼はもう一度尋ねました、なぜあなたは木を使いたいのか知っていますか?回答:ハッシュテーブルは、数千万または数億ものデータに直面して、より多くの競合が発生する可能性があるため、検索の時間計算量が大幅に増加します。ツリーは比較的安定していて、基本的には必要なデータが最大で20〜30回見つかることが保証されています。相手は完全に正しくないと言っていましたが、最後にこの問題について話しましたが、私もツリーが使用された理由を理解しました。

8、JVM

意外なことに、Java仮想マシンは非常に重要なコンテンツであるはずです。その結果、これらの企業で質問される可能性はほとんどありません。昨年、私はJava仮想マシンの研究に多くの時間を費やしました。ZhouZhiming氏による「Java仮想マシンの詳細な理解:JVMの高度な機能とベストプラクティス」を5回以上読みました。

自宅に近いところでは、Java仮想マシンについては尋ねませんでしたが、それを研究する必要があると思います。そのため、Java仮想マシンの概要を説明し、より重要なコンテンツについて説明します。

  1. Java仮想マシンのメモリレイアウト
  2. GCアルゴリズムといくつかのガベージコレクター
  3. 親委任モデルであるクラスローディングメカニズム
  4. Javaメモリモデル
  5. 起こる-ルールの前
  6. 揮発性キーワードの使用規則

面接は役に立たないかもしれませんが、大きな牛になるためには必須です。これはいくつかの企業への面接であり、最終的にこれらの面接の質問をまとめました。面接はあなたの給料を決定します。あなたはそれをうまく扱う必要があります。これらの質問はそうではないかもしれません。お願いしますが、プログラマーはそれほど熟練しておらず、ついにバイドゥからオファーを受けました。給料は悪くありません。これらの面接の質問を共有し、転職を計画している人たちを助けたいと思いました~~

 

記事のドキュメントとインタビュー資料が必要な友人は、この記事を気に入って、アシスタントvx:bjmsb10を追加して無料で入手できます。

 

学び、励ます

同時に、ゴールデンスリーとシルバーフォーが通過しました。現在の国内面接モードに関しては、面接前に積極的に面接の準備をすることが非常に重要です。Java全体を見直すことが非常に重要になります。知識システム。あなたはレビューが適切であるかどうかを言うことに非常に責任があります、あなたのエントリーの成功率に直接影響します。ただし、多くの友人は、Javaナレッジシステム全体を確認するための適切な情報を持っていないことに苦しんでいます。または、どこから始めればよいかわからない友人もいます。Java知識システム全体からでも、インタビューの観点からでも、誤って照合された資料を入手しました。これは非常に技術的な資料(PDF版)です。

無料の情報を入手する方法:

記事のドキュメントとインタビュー資料が必要な友人は、この記事を気に入って、アシスタントvx:bjmsb10を追加して無料で入手できます。

 

 

その他のアーキテクチャトピックとビデオ資料は次のように表示されます。

 

 

 

記事のドキュメントとインタビュー資料が必要な友人は、この記事を気に入って、アシスタントvx:bjmsb10を追加して無料で入手できます。

おすすめ

転載: blog.csdn.net/Java0258/article/details/112369254