50 分間の Java インタビュー、一般的な質問が行われます

インタビューのトピック、特に大規模工場に関するインタビューは常に非常に人気がありますが、実際には、大規模な工場やより一般的な中小企業に入社できるプログラマーはごくわずかであり、もちろん、物議を醸しているクラスのアウトソーシング会社もあります。中小企業のスタイルは、大規模な工場とは大きく異なるため、ほとんどのプログラマーにとって、この種のインタビューの方が価値があると考えられます。この同級生の面接体験があなたのお役に立てば幸いです。

インタビューの背景:

2022-06。電話面接、学部、実務経験2年、給与約12,000、面接1回、最終的に合格

面接は50分で、おそらくアウトソーシング会社の最初の面接となるはずだ。


面接官はあまり多くを語らず、どのポジションで面接するのかを尋ねただけで、すぐに話し始めました。最初に共通の技術スタックについて話させていただき、それから質問を始めました。

======Java の基本======

問題 1: 書き換えとオーバーロード

非常に基本的な質問であり、通常は若手の面接でのみ表示されます。B のふりをしたい場合は、Object の Equals メソッドに話題を持っていけば、例えば書き換えはオブジェクト指向において非常に重要な概念であり、ポリモーフィズムの現れの 1 つであると言えます。最も一般的な書き換えは、一般的に使用される String クラスなどの Equals メソッドの書き換えです。

一般のジュニアプログラマにとって、この回答は今のところ非常に素晴らしいものであり、Sheniu プログラマはダウンロードを続けることができ、POJO の書き換えや hasCode メソッドのオーバーライドなど、自分の作業で書き換えたかどうかについて話すことができます。そして、なぜ hasCode メソッドをオーバーライドする必要があるのか​​。そして、equals メソッドと hasCode メソッドの書き換えに関しては、List、map、set のスーパー インタビューの質問が含まれます。

質問 2: 親クラスの静的メソッドをオーバーライドできますか

質問 3: 静電気の役割は何ですか?

静的は、クラス、フィールド、メソッド、コード ブロック、静的コンストラクターにさまざまな影響を与えます。クラス、フィールド、メソッドの詳細については説明しません。静的コード ブロックはあまり使用されません。次のリンクを参照してください: https: //blog.csdn.net/sinat_33921105/article/details/79509638

非常に基本的な質問の場合、少し知識のある面接官はクラス、フィールド、メソッドについて質問し、少し能力のある面接官はさらに深く掘り下げてコード ブロックの機能について質問します。また、サブクラスが親クラスを継承する場合、コード ブロックと静的コンストラクターの実行順序も継承します。そして、この問題は単純に覚えるのが難しいので、コーディングするのが最善の方法です。さまざまな状況でコードを入力し、実行結果を見て、なぜこのように設計されているのかを考えて、静的クラスがなぜこのように設計されているかを理解します。

質問 4: データは静的にどこに保存されますか?

この問題についてはインターネット上にあまり情報がありません。より良い説明を見つけたのでここに残しておきます。読者は詳細をご覧ください。

https://blog.csdn.net/AOSIDIN/article/details/120017024

ほとんどの若手エンジニアの面接では、この質問に答えられないことは大きな問題ではありませんし、それが JVM のどの領域に属するのかを伝えることができることは悪いことではありません。より良いOFFERを獲得したい場合は、記事の内容をよく理解することをお勧めします。

質問 5: インターフェイスと抽象クラスの違いは何ですか?

質問 6: インターフェイス内のメソッドのデフォルト実装はありますか?

上記 2 つの質問は、オブジェクト指向の概念における比較的基本的な質問です。質問 6 で、面接官が聞きたいのは、JDK1.8 の特性についての理解です。1.8 以降では、インターフェイス メソッドはデフォルトの実装を持つことができますが、1.8 より前では、いいえ。

質問 7: 値渡しと参照渡し

質問 8: Java は値渡しですか、それとも参照渡しですか?

実際、Java には参照渡しという概念がありません。すべてのパラメータの受け渡しは実際には値渡しですが、渡された値が

質問 9: Final は何のためにありますか? ファイナルを使ったことがありますか?何の用事でしょうか?

質問 10: Try ブロックで i=0 を定義し、次に i++ を定義してリターンするメソッドがあります。最後のブロックでも I++ が実行されますが、最終的な戻り値は何ですか?

まずコードを見てください。

public class Test { 
  public static void main(String[] args){ 
      int a = dod(); 
      System.out.println("return:"+a); 
  public 

  static int dod(){ 
      int i=0; 
      試してください{ 
          i++; 
          System.out.println("try:"+i); 
          私を返します。
      最後
      に { 
          i++; 
          System.out.println("finally:"+i); 
      ===========
运行結果========
試行:1
最終的に:2
戻り
  値
:1

コードから、戻り値はfinallyのコードの影響を受けないことがわかります。

======== マルチスレッド =======

質問 11: スレッドは使用されましたか? スレッドはどのように作成されますか?

質問 12: Callable と runnable の違いは何ですか?

質問 13: 待機とスリープの違いは何ですか

質問 14: 同期についてどのように理解していますか?

質問 15: オブジェクトまたはメソッドをロックしますか?

質問 16: ロックは使用されましたか?

質問 17: デッドロックに遭遇したことがありますか?

質問 18: デッドロック状況を回避するにはどうすればよいですか?

楽観的ロックと悲観的ロック

この一連の質問は、基本的にさまざまな面接質問バンクの 11 ~ 15 までの回答があり、一般的に質問はありません。実際のテストは質問 17 と 18 です。面接官は行き詰まりを引き起こす可能性のあるシーンを伝える必要があるためです。この状況を回避する方法についても説明できなければ、面接官はあなたのマルチスレッドに対する理解が比較的基本的であると判断する可能性があります。

なお、質問11~15に回答できない場合は、質問17は存在せず、求職者が回答することができます。

======コレクション======

質問 19: Java コレクションで一般的に使用されるインターフェイスは何ですか?

この質問の仕方は少し奇妙です。面接を受けた学生は最初は少し戸惑っていましたが、学生の方が賢かったため、面接官に例を示すよう求めました。面接官は、たとえば「リスト」と言いました。この時点で、生徒たちは何を答えるべきか分かっています。

このような状況は面接ではよくあることです。面接官は質問の入り口をさまざまに用意しています。しばらく理解できないのが普通です。面接官に少し解いてもらうと、理解できるかもしれません。

質問 20: HashMap の基礎となるデータ構造は何ですか?

質問 21: ArrayList の展開メカニズムは何ですか?

この部分では何も言うことはありません。Java のインタビューが必要になります。HashMap の基礎となるデータ構造について、少なくとも配列とリンク リストと赤黒ツリー、およびリンク リストをいつ使用するか、いつ使用するかについて答えられる必要があります。赤黒の木。HashMap の拡張メカニズムと成長率もあります。要件が高い企業 (大手メーカーなど) は、HashMap の初期サイズが 16 である理由、成長率が 0.75 である理由、容量が 2 倍になっている理由など、より深い質問をします。 8 つ以上のリンク リストが赤黒ツリーを使用する理由。HashMap の設計を求められたら、どのように設計しますか? マルチスレッド シナリオで HashMap を使用するとどのような問題が発生しますか? と尋ねる人もいます。解決方法などは?

====例外処理=====

質問 22: Java における一般的な例外

質問23: 投げと投げの違い

質問は比較的基本的なもので、一般の初心者でも答えることができますが、高収入を得たい場合は、プロジェクトの例外処理メカニズムの観点からさらに深く掘り下げることができます。特にWebプロジェクトでは、プロジェクト全体の例外処理はどのように行われているのか。バックエンドでグローバル例外処理を行う方法と、フロントエンドで統合例外処理を行う方法。

=======Spring フレームワーク======

質問 24: 春の IOC の実装を見たことがありますか?

質問 25: Spring の Bean の範囲は何ですか?

質問 26: Mvc のワークフロー

質問 27: Spring と SpringMvc の一般的なアノテーション

質問 28: @Autowired と @Resource の違い

質問 29: なぜ今、SpringBoot が普及することができるのでしょうか?

これらはすべて、春の比較的基本的な面接の質問であり、非常に一般的な面接の質問でもあります。いうことがない。

=====データベース=======

質問 30: MySql のダーティ リード ファントム読み取りとは何ですか?

質問 31: インデックスは使用されましたか?

質問 32: インデックスが無効になる状況はどのような場合ですか?

もっと重要なことは、意志

質問33: varcharとcharの違い

質問 34: varchar(20) では、20 の単位は何ですか? それは文字ですか、それともバイトですか?

質問 35: 絵文字表現をデータベースに保存しましたか?

求職者は、画像ファイルをデータベースに保存することについて質問し、バイナリ ファイルをデータベースに保存する方法について話しましたが、この方法は実際の業務で使用することはほとんど不可能であり、質問の答えとしては十分です。このメソッドは独自のプロジェクトで使用します。

実際、絵文字表現は実際にはコードの一部であるため、この質問には別の角度から答えることができます。たとえば、データベースに保存されている内容は次のとおりです: 私は [悲しい]、ソフトウェア インターフェイスではそれが次のように表示されます: Iとても悲しいです。

この機能は通常、フロントエンド ディスプレイ アーキテクチャと連携します。たとえば、一般的なリッチ エディット ボックス コンポーネントなどです。

質問 36: お金を記録する場合、どのフィールドが使用されますか?

質問 37: 精度を制御するにはどうすればよいですか?

これはデータ型について質問するときによく聞かれるので、理解しておく必要があります。

質問 38: MySql の左結合と右結合とは何ですか?

質問 39: SQL が遅いと感じた場合、どのように対処しますか?

質問 40: Explain キーワードは MySql で使用されましたか?

質問 41: インデックスが追加された場合、任意のフィールドを追加できますか?

質問 42: 性別をインデックス化できますか?

質問 39 ~ 42 は、データベースの最適化に関連する典型的な質問です。多くの初心者は、Explain について知りません。多くの人は、この質問に答えることができませんが、面接には合格できます。ただし、Explain を注意深く学習することをお勧めします。実務にも非常に役立ちます。

問題 41 と 42 では、インデックスを実際に理解する必要があり、暗記だけでは十分ではありません。

====== キャッシュ ======

質問 43: キャッシュは役に立ちますか?

質問 44: 一般的に使用されるキャッシュのタイプは何ですか?

質問 45: Redis の排除戦略は何ですか?

質問 46: Redis の使用シナリオ

質問 47: どのようなデータがキャッシュされますか?

質問 48: キャッシュペネトレーションについてご存知ですか?

質問 49: Redis の永続化は行われていますか?

キャッシュに関しては、非常に簡単な場合もあれば、非常に難しい場合もあります。通常、経験豊富な面接官が、キャッシュがどのように使用されているかを直接質問します。次に、プロジェクトでの実際の使用状況に基づいて、使用中に発生する可能性のある問題を通知します。

=====HTTP プロトコル=====

質問 50: Http に触れたことがありますか?

それはHTTPプロトコルですか? はい。Httpプロトコルが理解されていません

質問 51: Http プロトコルのメソッドは何ですか?

質問52: プットは何のためにありますか?

質問53:普段何を使っていますか?

質問 54: post はデータの変更にも使用されますか?

質問 55: HTTP で一般的に使用されるステータス コードは何ですか?

一般的に技術面接は 30 分程度で終わり、基本的にそのような基本的な質問をする時間はあまりないため、HTTP プロトコルについて質問されることはほとんどありませんが、これは多くの初心者が無視する基本的な質問です。面接の質問を覚えるのは苦痛ですが、この質問は諦めて、面接中に他の質問を探しても、就職活動の最終結果に大きな影響はありません。それほど苦痛に感じない場合は、時間をかけて理解することをお勧めしますが、Web 開発の能力があれば、これを理解することは難しくありません。

====== コード管理 ======

質問 55: どのコードのバージョン管理が使用されていますか?

質問56: 対立は理解されていますか?

質問 57: コードがめちゃくちゃになることを心配しませんか?

コード管理で最も一般的な問題は、コードが競合した場合にどうするかということです。ここでの基本原則は、競合するコードを許可なく削除しないことであり、処理する前に明確にコミュニケーションする必要があります。

git の一般的なコマンドについてよく質問されることがありますが、全体としては、この部分はそれほど重要ではないので、知っておくと良いでしょう。たとえ答えられなくても、実際の作業では短時間で完了できることがほとんどです。 。それは面接官がこの部分にどれだけこだわりを持っているかによって決まります。

======ビジネスシナリオ=======

質問58: 注文と支払いをしたことがありますか?

質問59: 注文の種類は何ですか? タオバオと同じですか?

質問 60: 注文機能について概説しますか?

質問61: 製品の注文を頼まれたら、どのようにデザインしますか?

質問 62: 1 つの注文に含まれるすべての製品情報はどうなりますか?

質問 63: 注文と製品の関連付けテーブルを作成するという意味ですか?

質問 64: 注文の支払いと保存のプロセスを設計するように求められたら、どのように設計しますか?

質問65:製品の在庫に関する問題はどのように対処すればよいですか?

質問66: 注文後に支払いがない場合、この商品の在庫は減りますか?

問67:商品が10個あったとして、20人が買いに来て、20人全員が支払い待ちの状態ですが、このときすでに10人は支払いを済ませていますが、残りの10人はどうすればよいでしょうか?

質問68: この状況は非常に恥ずかしいです。注文に何か問題があるのに、支払いをしませんでした。しばらくすると注文が消えてしまいました。恥ずかしくないですか?

質問 69: JWT は理解できますか?

質問 70: プロジェクトで使用されましたか?

シナリオ質問は技術面接のレベルを最もよく知ることができる面接質問であり、この種の質問を解決するには、普段の学習プロセスでもっと考えて積み重ねる以外に良い方法はありません。もちろん、古典的なシーンのいくつかは短期間で克服できます。例えば、このインタビューの注文シーンと支払いシーン。

=====その他=====

質問 71: Linux に関連することを何か知っていますか?

質問72:最近何か勉強していますか?

質問 73: クラウドはどの程度のことを知っていますか?

質問74:今後のキャリア開発の方向性や技術開発の方向性についてはどうお考えですか?

質問 75: 以前のワークフローはどのようなものでしたか?

質問 76: プロジェクトはどのように展開されますか?

質問 72 と 74 は一般的に人事に関する質問ですが、自社開発会社の質問が多く、外注会社の質問はほとんどありません。この種の質問に対する答えとしてインターネット上で提供される提案の多くは、将来の計画など、かなり大げさなものが多く、今後数年でプロジェクト マネージャーになり、技術スーパーバイザーになれたらいいという提案がたくさんあります。数年 このような答え その方法はデタラメです。どうすれば誰もがリーダーになれるのでしょうか。

キャリアプランニングの質問は、1年以内に独立してプロジェクト開発を完了できるようになりたい、プロジェクトのパブリックコードの開発を完了できるようになりたい、またはプロジェクトのパブリックコードの開発を完了できるようになりたいなど、将来何をしたいのかという観点から回答することをお勧めします。 2年以内にコンポーネントを完成させ、建築家のレベルに達するには3年かかります。5年間でプロジェクトマネジメントの知識を習得し、プロジェクトマネージャーとしての基礎能力を身につけます。

どれくらいの給料を得たいかなど、もう少し現実的な方法で答えることもできます。インターネット上では、企業はそのような低俗な求職者にうんざりしていると多くの人が言っていますが、私の意見では、これは実際に多くのことを測定する最も簡単な方法であり、求職者の観点から、この問題について話すことで、いくつかのことを除外することもできます。 PUAを職場に導入している企業や、給与の考え方を自由に設定して応募を受け付けてくれる企業は、それほど悪くないと思います。

===========================

全体として、この面接は典型的なリスト形式の面接で、面接官が質問バンクを用意しているようで、Java エンジニアの面接でよくある質問のほとんどが聞かれます。面接官が尋ねるトピックの中には、比較的浅いものもあれば、もう少し深く掘り下げるものもあります。

このスタイルのインタビュー体験が役に立ったと思われる場合は、私をサポートし、このタイプの記事を書き続けるモチベーションをさらに高めるために、高評価を押していただくか、ディスカッション エリアにコメントを残してください。

 

おすすめ

転載: blog.csdn.net/aley/article/details/126013464