Netease Android フレームワーク開発後の面接経験の共有 (面接の質問の概要 + 事例分析付き)

バックグラウンド

今年は非常に厳しい年と言えます。部門は解体され、多くの同僚が偽装解雇されました。他の部門に行くことで少しはリラックスできますが、それでも私は空いたポジションで成長したいと考えていますby Android だったので、私も退職を申し出ました。退職後 2 ヶ月間、Android 開発エンジニアのポジションに履歴書をいくつか提出しましたが、ほとんど反応がありませんでした。返信してくれたのは、評価の低い一部の中小企業でした。 Android フレームワーク エンジニアのポジションについて話したので、翌朝応募しようとしたところ、Xiaomi、Netease、Didi Chuxing などの多くのフィードバックを受け取り、いくつかの場所に面接しました次々とオファーを頂きました、今回の解雇経験でより慎重になったので、数日前、一番行きたかった網易福から無事内定を頂き、無事入社することができました今。

この記事では主に私の部署面接の体験談を紹介していますが、もちろんここ数ヶ月の就職活動で遭遇した面接の質問も「Android の面接質問まとめ」にまとめていますので参考にしてください。

Netease 片面 (70分)

  • 自己紹介をしてください
  • フローがライブデータを置き換える理由、違いは何ですか、フローはどのようにスレッドを切り替えるのですか
  • スレッド、プロセス、コルーチンの違い、Dart のスレッド モデルとは何か、スレッドかコルーチンか、ハンドラーについて学習しましたか、Java でスレッドを開始する方法について話します
  • シンクロってご存知ですか?効果は何ですか?応用シナリオは何ですか? 同期メソッド、インスタンス メソッド、静的メソッドの違いは何ですか?
  • プロセスのデッドロックはどのようにして発生するのでしょうか? プロジェクトを実行しているときにスレッドの問題に遭遇したことがありますか? 1 つを選択し、http と https の違いを解決する方法と、https が安全である理由について話してください。
  • tcp と udp の違いは、ポリモーフィズムとは何か、実際のアプリケーションとは何か、hashmap hashTable concurrentHashMap の原理と違いを説明します。
  • 通常、新しい知識を学び、コードを書き、手をこすり、素早く漕ぐ方法を学びます。

両面(60分)

  • プロジェクトについての質問を開始し、責任のある内容、使用されているテクノロジー、使用されているフレームワーク、遭遇した問題、それらの解決方法、最終結果など、プロジェクトで言及されている内容を深く掘り下げます。
  • アプリケーションは異なるプロセスで実行できますか? プロセス間通信サービスはメインスレッドで実行されますか? サブスレッドで実行されますか?
  • メインプロセスの 2 つのスレッドが子プロセスの Aidl を呼び出すときに、リソースの競合は発生しますか?
  • ハンドラーとスレッドの関係 アプリは複数のタスク スタックを持つことができますか?
  • 修辞的な質問

HR面(15min):

  • 現在の状況と到着時間を確認し、
  • 私自身の強みと適性、この投稿を選んだ理由。
  • 他工場の配送状況や進捗状況、最終配送先の可能性。

上記のインタビューの質問は PDF ドキュメントにまとめられているので、必要な友人は以下のリンクにアクセスして無料で入手できます~

「Android 面接質問集」 docs.qq.com/doc/DWHlTakRsZFpqd0l0

Java の面接での質問:

基本知識

  1. イコールメソッド[Stringクラス]を手書きで書いて、具体的な原理を話してください。Objectクラスのequlaメソッドとは何ですか?
  2. StringとStringBufferの違い、StringBufferの底を実現する方法を教えてください。String クラスは継承できますか?その理由は何ですか?
  3. String a="" と String a=new String(") の類似点と相違点は何ですか? String の作成メカニズムを理解するにはどうすればよいですか?
  4. なぜ Java の文字列は不変 (Immutable) なのでしょうか? 文字列の設計と実装に関する考慮事項? String が不変であることの利点は何ですか?

ここに画像の説明を挿入
オブジェクト指向のナレッジポイント

  1. オブジェクト指向プログラミングの 4 つの特徴とその意味は何ですか? カプセル化、継承、ポリモーフィズムとは何ですか? なぜパッケージ化するのか?なぜ多重継承ではなく単一継承なのでしょうか?

  2. オーバーロードとオーバーライドの違いは何ですか? バインディングメカニズムのオーバーロードとオーバーライドの違いは何ですか? 親クラスの静的メソッドをサブクラスでオーバーライドできますか? 書き換えは動的バインディングですが、そのメカニズムをどのように理解すればよいでしょうか?

  3. バインディングとは何ですか? 静的バインディングと動的バインディングはどのように異なりますか? 動的バインディングコンパイルの原理は何ですか? 動的バインディングはどのように機能しますか?

  4. インターフェースと抽象クラスの違いは何ですか? インターフェースのポイントは何ですか?抽象クラスのポイントは何ですか? 抽象クラスとインターフェイスを選択するにはどうすればよいですか?


  5. Java
    ここに画像の説明を挿入
    データ構造

  6. arrayList の System.arraycopy() と Arrays.copyOf() の違いは何ですか? System.arraycopy() と Arrays.copyOf() のコードの説明?

  7. コレクションコレクションとマップコレクションの違いは何ですか? 地図コレクションの特徴は何ですか? マップ コレクションの全体的な構造について話してください。

  8. Java コレクション フレームワークのクラスとは何ですか? 特徴は何ですか? コレクション フレームワークは Collection インターフェイスを使用しますが、このインターフェイスの特徴は何ですか?

  9. 要素を追加するときに ArrayList を展開するにはどうすればよいですか? 指定した位置に要素を追加する方法、この操作は深いコピーですか、それとも浅いコピーですか?


  10. ここに画像の説明を挿入

Android の面接での質問:

基礎知識のポイント

  1. アクティビティのライフサイクルについて話しますか? 画面が回転するときのライフサイクルは? 例外条件によってどのようなメソッドが呼び出されますか?
  2. バックグラウンドのアクティビティがシステムによってリサイクルされている場合はどうすればよいですか? onSaveInstanceState() メソッドと onRestoreInstanceState() メソッドの特徴について教えてください。
  3. 構成が変更されたときにアクティビティの再構築を回避するにはどうすればよいですか? メモリ不足によりリサイクルされた後、優先度の低いアクティビティを破棄される前の状態に戻すにはどうすればよいでしょうか?

ここに画像の説明を挿入

高度な知識のポイント

  1. メッセージメカニズム Hander の機能について話してください。要素とは何ですか? プロセスはどのようなものですか? あなたの意見をお聞かせください。
  2. Handlerのpostメソッドとviewのpostメソッドの違いは何ですか? サブスレッドでルーパーを手動で作成することを避けるように言うのはなぜですか?
  3. 新しいハンドラーを子スレッドで直接作成できますか? 何が問題になる可能性があり、何をすべきでしょうか?

ここに画像の説明を挿入
パフォーマンスの最適化に関する面接の質問:

  1. アプリ起動時に白い画面または黒い画面が表示される原因は何ですか? 解決策は何ですか? 最後に setBackgroundDrawable を null に設定するのはなぜですか?
    2.SharePreference パフォーマンスの最適化、プロセスの同期は可能ですか? どのように最適化されていますか?

ここに画像の説明を挿入

フレームワークに関するインタビューの質問:

  1. バインダーとは何ですか? バインダーを使用する理由 Binder ではスレッド管理はどのように実装されていますか? バインダーが何について話しているのかを要約してください。
  2. Android のプロセスとスレッドの関係は何ですか? IPCとは何ですか? なぜ IPC が必要なのでしょうか? マルチプロセス通信では何が問題となるのでしょうか?
    3. Binder のワークフローは何ですか? Binder は主にどのような機能を提供できますか? Binder の通信メカニズムの原理は何ですか?
  3. Android の主要な IPC メソッドとして Binder が追加されたのはなぜですか? バインダーの動作メカニズムは何ですか? バインダー機構の利点は何ですか?
  4. Android でのクロスプロセス通信にはいくつかの方法がありますか? 実際の開発では、どのようなシナリオでデータ送信に Binder が使用されますか?

    ここに画像の説明を挿入

Android アーキテクチャの面接での質問:

  1. MVC、MVP、MVVM の違いと利点の分析について話しますか?
  2. どのようなデザインパターンが使用されているかについて、Android の例をいくつか挙げていただけますか?
  3. レトロフィットの実装と原理? 動的プロキシとは何ですか?
  4. Glide と Picasso を比較した場合の長所と短所について話してください。

    ここに画像の説明を挿入

音声とビデオによるインタビュー:

  1. SurfaceView は何をするのですか? SurfaceView と View の本質的な違いは何ですか? SurfaceView の長所と短所は何ですか?
  2. SurfaceView は UI インターフェイスの流暢さをどのように保証しますか? ダブルバッファリングのメカニズムを理解するにはどうすればよいですか?
  3. SurfaceView が UI メイン スレッドをブロックせずに、新しいスレッドで画面を更新するのはなぜですか? 子スレッドで UI を操作できないことと矛盾しますか?

ここに画像の説明を挿入

やっと

実際、面接で聞かれることはそれほど多くなく、あくまで総合評価は緊急時用であることは皆さんご存知だと思いますが、頑張って昇給の夢を実現してください!
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_70749039/article/details/130608516