ホームページ  >  記事  >  この女の子がどのようにして Meituan からオファーを得たかわかりますか?

この女の子がどのようにして Meituan からオファーを得たかわかりますか?

Java学习指南
Java学习指南転載
2023-07-26 16:55:08965ブラウズ

Meituan、Lagou.com に履歴書を送信しました。以前にも一度送信しましたが、削除に失敗しました。後で先輩に履歴書の変更を手伝ってもらいました。別の部署に応募したところ、面接の機会が得られました。 10月23日、正午に人事から電話があり、午後4時半に面接の約束をし、オンラインでコードを書くのでネットワーク環境を準備してほしいとのことでした。結局、5時半になっても電話が来ず、そのまま放り出されました。人事部と再度連絡を取った結果、来週月曜日の午後にもう一度会うことになりましたが、人事部と連絡を取ってアポイントを取ることは美団では役に立たないようです。

面接 1 回 (20 分)

来週の月曜日に面接を受けたいので、夕方 7 時です。北京からバドミントンをしに行くところだという電話がかかってきた。面接官は「会議が遅れてしまった」とさまざまな形で謝罪した。

1. 自己紹介

何度も言いますが、要点を押さえるととてもスムーズです。

2. データ構造アルゴリズムが優れているかどうか質問してください。

かなり優れています (実際にはまだ少し弱いですが、最近多くの質問に答えてきましたので、できるようになりました)太っているふりをする勇気だけが必要です)。

3. 単一リンク リストの 3 つの等しい点を見つけます。単一リンク リストにリングがある場合はどうなりますか?

高速ポインタと低速ポインタを使用し、1 つのステップには 1 つのステップを、もう 1 つのステップにはもう 1 つのステップを使用します。 3つのステップ。ループがある場合は、まずループの場所を特定し、最後のノードを見つけてから、前述のループフリーの方法を使用します。

4. プロジェクトの構造について話しましょう

私は MVC に焦点を当てました。

5. よく知っている設計パターンについて話します

私はシングルトン、ファクトリ メソッド、およびエージェントに焦点を当てました。

6. サーバーを設定したことがありますか?

これについてはまったく知りませんし、聞いたこともありません。正直に「いいえ」としか言えません。それについて話すときのポイント。

私は急いでいたので、面接官は会議を終えたばかりでまだ食事をしていなかったように思います。彼は私に、待って、おそらく私と面接してくれる同僚を見つけてください、そうすれば結果を直接教えてくれるかもしれない、と言いました。面接官の声や口調から、おそらくその部署の上司だろうと判断し、デザインについてさらに質問したところ、後日、人事の方から「彼は私の行きたい部署の上司です」と告げられました。ははは。

二面(60分)

最初の面接が終わり、バドミントンをしに出かけようとしていたところ、再び北京から電話がかかってきました。 (今週金曜日はチーム活動に参加しない予定です!)

二面: Yiyi と比べると、二面面接官は技術開発に従事している人のように聞こえます。予想どおり、純粋な技術の 1 時間の電話面接!非常に包括的です!

1. Spring: Spring、Spring IOC、AOP メカニズムと実装、Spring MVC を使用したことがありますか


実際には、使いたくありません。 Springについて聞かれるのですが、内容や枠組みを見直していないのでよく覚えていません。そこで私は面接官に、Spring のより重要なメカニズムのいくつかをよく理解していると伝え、その後、実践的な例を使って IOC と AOP についての私の理解を説明しました。面接官は耳を傾け、その通りでよく理解していると言いました (まれな出会い) ). 面接中にフィードバックをくれる面接官がいることをとても嬉しく思います。)


実際、私は Spring MVC を使用したことがあり、プロジェクトで使用するサーブレット、jsp と javabean によって実装される MVC、および各 MVC の責任について面接官に話しました。最後に、SpringMVC のアイデアは実際にはこれと同じだと思うと付け加えました (彼の言う通りです。フィードバックがあるのは素晴らしいことです)。


2. マルチスレッド: スレッド セーフを実現する方法、さまざまな実装方法の違い、volatile キーワードの使用、リエントラント ロックの理解、同期は再入可能です ロックイン


ここでは、主に Synchronized キーワードと並行パッケージのいくつかのロック、およびそれぞれの長所、短所、相違点について説明します。主に、可視性、アトミック性、JVM 命令の並べ替えの禁止という 3 つの側面から volatile キーワードについて説明し、マルチスレッド シングルトン モードのダブルチェックで JVM 命令の並べ替えの最適化を禁止するために使用した volatile キーワードについてもお話しました。


#3. コレクション: HashMap の基礎となる実装、HashMap のスレッド セーフを実現する方法


について話しました。 HashMap 配列の基礎となる層に加えて、単一リンク リスト実装、ノード内部クラス、追加プロセス、ハッシュ競合解決、拡張、3 つのコレクション ビュー。 HashMap スレッド セーフの実装方法では、主に、HashMap をカプセル化できる HashTable、ConcurrentHashMap、および Collections の静的メソッド SynchronizedMap について説明します。そして、これら 3 つの方法の違いと効率パフォーマンス。


4. JVM メモリ管理、GC アルゴリズム、HotSpot でのガベージ コレクターとクラス ロード


JVM メモリ です。主に 5 つの領域に分かれており、どの領域がスレッドで共有され、どの領域がスレッド専用で、各領域に何が格納されるかが決まります。 GC: GC、GC メソッド、マイナー GC、フル GC が必要なオブジェクトを決定する方法。 HotSpot GC アルゴリズムと 7 種類のガベージ コレクション期間、主に CMS と G1 コレクターについて説明します。クラスローディング: クラスローディングのプロセス、Bootstrap classloader-ExtClassloader-AppClassloader、親クラス委任メカニズム。


5. プロセスとスレッドの違い


スケジューリング、同時実行性、所有リソース、システムの 4 つの側面から見るオーバーヘッド あらゆる面からお答えします。


6. HTTP には状態がありますか? ステートレスと言いましたが、HTTP ステートレスを解決する方法


HTTP を解決する方法ステートレス ステートレスとは実際にセッションを追跡する方法で、URL 書き換え、隠しフォーム フィールド、Cookie、セッションの 4 つの方法があります。


7. Java IO、NIO は Java に非同期 IO が実装されていますか?


Java IO は同期ブロッキングを実装します。同期ブロッキングをどのように実現するのか。 read() メソッドを例として取り上げました。 NIO は同期ノンブロッキングを実装します。多重 IO を実装する方法を説明するために、Selector の select() メソッドのポーリングについて詳しく説明しました。次に、それらの効率を比較します。おそらく面接官は、私がこの分野について多くの知識を持っていることを見て、Java に非同期 IO が実装されているかどうかを尋ね続けました。実際、私はこれについてあまり知らなかったので、面接官に Unix の非同期 IO モデルについての理解を伝え、それが Java に存在するかどうかは本当にわからないと言いました。 (彼は実際に笑いました! あなたの理解は正しいと彼は言いました。Java が含まれているかどうかは関係ありません! (笑)


8. フロントエンドは知っていますか? Ajax とは何ですか? Ajax 実装の原則


# フロントエンドで js を使用する方法を知っているだけです。jquery フレームワークを使用したことがあります。完全なものは何かを聞いてください。 Ajax の名前は、非同期の js と xml だと思います。実は、Ajax の実装原理はよくわかりませんが、XMLHttpRequest オブジェクトによる非同期クエリについて簡単に説明しましたが、Ajax エンジンはクライアント上で動作するため、サーバーの負荷が軽減されます。


9. スレッド プールを設計させてください


履歴書に書いてあるので、よく知っています。マルチスレッド、同時実行性の側面がよりよく理解されています。したがって、彼は常にこの分野について質問します。以前 ThreadPoolExecutor のソースコードを見たことがあるので、そのクラスの設計思想に基づいてこの問題を考えました コアプール、スレッドを作成するために使用できるファクトリメソッドパターン、スレッド プールのステータス、ブロックキュー、これらの側面における拒否戦略。デザインはかなり徹底しています。


#10. いくつかのデザイン パターン、それらが使用される場所、および


# を使用する必要がある理由について話しましょう。 # シングルトン パターン jdk の getRuntime(); ファクトリ メソッド モード、ThreadPoolExcutor は ThreadFactory を使用します; オブザーバ モード: java.util パッケージの Observable および Observer。最後に、ファクトリメソッドパターンの利用シーンを中心にお話しました。


###

11. MySQL の最適化とインデックスの実装


データベース設計の最適化とクエリの最適化という 2 つの側面から説明します。インデックス B ツリーの実装、InnoDB と MyISAM の主キー インデックスの実装の違い。一方は集約され、もう一方は非集約です。


12. トランザクション分離レベル


4 つの分離レベル、発生する可能性のある例外、mysql レベルのデフォルト。


13. Hibernate、mybatis、または git を使用したことがありますか?


それぞれについて簡単に説明します。 。 何をするか。


14. Linux


学部のときに習ったと言いましたが、使ったことはありません長い間コマンドをすべて忘れていました。彼は、「大丈夫です。cd、ls、dir (本当に簡単です)」といういくつかの簡単なテストであなたをテストします、と言いました。


15. アルゴリズムの質問


100,000 個の数値から最小の 10 個の数値を見つける、時間計算量分析 (最大ヒープを考慮)メモリ)。


正負の配列から連続する部分配列の最大合計を求める、時間計算量解析 (動的計画法)

完全なバイナリ ツリー i レベル ノード数n レベルの完全なバイナリ ツリーにはノードがいくつありますか。

ついに私が質問する時間になりました:


1. あなたはどこの部門に所属していますか (彼は、それが中核部門であるビッグデータ研究と発達)。


2. 私は高い同時実行性と負荷分散に非常に興味がありますが、この側面を体験できる環境が学校にありません。 ? 今からどのように学べばよいでしょうか (彼は、学ぶのは本当に簡単ではないと言いました。いくつかの理論と他の人のブログを読むだけで、将来は仕事でゆっくり学ぶことができます)。


3. ミドルウェアは正確に何をするのですか? それは、高い同時実行性と負荷分散を解決するためですか? (彼はほぼイエスと答えましたが、その後、私たちの部門はミドルウェアではないと言いました。それはビッグデータ部門です、私は知っています(はい、知っています)。


最終的には問題はなく、彼は私に電話を開いたままにしておいてほしいと言いました。

この面接の後、私の口は渇き、私がインターンのポジションに応募していることを彼は知らないのではないかと疑ったことがありました。あまりにもまとめきれないので、まとめのところで一緒に話しましょう。


面接 3 回 (25 分)

面接官は、別の部門の出身なのでクロスインタビューを行う必要があると言いました。


1. MySql の最適化。


#2. プロジェクトの内容やアーキテクチャなどについて教えてください。


3. Collabedit でオンラインでコードを書きます。質問は非常に簡単です。The Beauty of Programming の元の質問です。順序付けられた整数配列、2 つの数値を出力します。それらの と は与えられた値です。以前にもやったことがあって、さっと書いて、そのアイデアを彼に説明しました。彼は続けて、配列が順序付けされていない場合はどうすればよいか、まず並べ替えてくださいと尋ねました。


4. 2 つのファイル。各ファイルには複数の URL があります。2 つのファイルで同じ URL を見つけます (HashMap を使用)

この側面は非常に簡単です。以前の面接ではなかったオンライン コード作成リンクが追加されるだけです。後で Collabedit について知りました。Facebook などの一部のインターネット企業は、このオンライン エディタを使用してリモート面接用のコードを作成しています。これはテキスト ドキュメントです。プロンプトはありません実行することは、ホワイトボードに書くことと同じです。定期的に手を練習してください。


人事との 4 回の面接 (30 分)

3 回の面接の面接官は、これが最終面接であると言い、次のように言いました。合格したら人事部から連絡が来るのを待ちたいと思います。 30分後の人事面接も技術的な内容になるとは予想していませんでした。

1. 自己紹介. 周りに人がいるのになぜ自己紹介をするのですか? !単純な人事面接だと思っていたので、私の性格や人生についての自己紹介がすべてだったかと思いましたが、実際はそうではありませんでした。

2. プロジェクトについて質問し、技術的な詳細、遭遇した問題、それらをどのように解決したか、プロジェクトを主導する人がいるかどうか、他の人とどのようにコミュニケーションを取ったかなど、非常に詳細な質問をします。

3. データベースの最適化、データベース内のテーブルが非常に大きい場合はどうすればよいですか?

データベースの最適化 これまで何度も話してきた点について話しました。テーブルが非常に大きい場合に行うべきこと: 大きなテーブル 小さなテーブルに分割する、実装方法: パーティション テーブルを使用します。

4. 大学院生に、科学研究のテーマ、なぜこのテーマを選んだのか、どのような論文を読んだのかについて尋ねます (論文がどのジャーナルに掲載されたか、著者がどの学校の出身であるかについても詳細に尋ねます)。 、そして彼らがこのトピックを選んだ理由は何ですか? このアルゴリズムはどのように最適化されていますか? 実験結果は他のアルゴリズムとどのように比較されますか? なぜ他のアルゴリズムより優れているのですか? (質問が私に次々と来ます。おそらく彼は私の専門用語をよく理解していないようです)話しているのは、それが私なのかどうかを判断しようとしているだけです。私がやっていることだけです...)

5. インターンシップの時間を決定する

この側面が私を本当に魅力的にしますプレッシャーを感じます 学部時代にやったプロジェクトなので、かなり時間がかかりました 技術的な内容があまり詳しくない部分もあります 概要なので、詳しく聞いても自分の考えしかありませんが、ふふ。科学研究に関しては、悪くありません。私は最後の学期にこれに取り組んでいました。いくつかのアルゴリズムの実装、改善、比較を今でもはっきりと覚えています。非常に流暢に答えました。おそらく、これは本当に人事の技術的な側面です。

とても疲れました。もうインターンシップを探したくないです。美団のインターン面接は、学校の正式な採用オファーと同じくらい素晴らしいと言わざるを得ません。あらゆる面でとても疲れています。この売り場もとても良くてとても満足しているので、これ以上探したくありません。ここまでで、Java の基本、データベース、コンピュータ ネットワーク、およびオペレーティング システムの復習が完了しました。あとは、毎日質問をブラッシュアップして続けてください。次に、Tomcat のソース コードを確認する準備をします。これから新しい段階に入ります。これで終わりではありません。さあ、やってみましょう。


#

以上がこの女の子がどのようにして Meituan からオファーを得たかわかりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はJava学习指南で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。