QQ音樂Android一面涼經

最近面試了不少公司, 近期告一段落, 整理一下各家的面試問題, 打算陸續發布出來, 供有緣人參考。今天給大家帶來的是QQ音樂Android一面涼經。

  • 面試崗位: QQ音樂Android開發工程師
  • 面試時長: 50min(提問40min + 反問10min)
  • 代碼考核: 無

面試問題(40min)

  • 自我介紹
    • 工作經歷, 重點講能突出自己優勢的經歷或項目
    • 換工作的原因
  • 聊項目A(RN頁面打開速度優化)
    • 簡單說一下RN的實現,和客戶端的交互原理和流程。
    • RN頁面啟動耗時久?主要的原因是什么?
    • 網絡請求前置,前置的請求參數是怎么獲得?
    • 僅網絡請求前置的話, 啟動速度還是會比native慢。還有其他優化嗎?
    • 進入頁面前進行預熱可能造成不必要的資源消耗, 有沒有統計過多少人會進入這個RN頁? 有些用戶可能不會點。
    • 工程內用RN的頁面多不多?
    • 公司內RN的基建是否參與建設
  • 聊項目B(業務組件化)
    • xx業務的組件化講一下, 具體做了什么?
    • 從主工程里抽出來的子倉庫如何保留git記錄?
    • 說下組件化模塊化的優點。常說的就是“代碼清晰,業務隔離”。面試官認為這兩點是比較虛幻的。怎么個清晰法,怎么個解耦法其實是不好量化的。實際對業務上的幫助或其他方面的優點說說你的理解。
  • 聊項目C
    • 展開講講
  • 聊聊你擅長的領域(內存、頁面打開耗時、App安裝、so、線程、內存、網絡、UI卡頓、ANR、Web等挑一個自己擅長的或有研究的講講)
    • 內存
      • 內存線程監控怎么做?線上問題排查思路。內存監控工具有哪些?檢查內存泄漏的原理, 如何設定內存閾值。
      • LeakCanary的原理。它是怎么做到檢測內存泄漏。如何實現?
      • LeakCanary過一段會去檢測內存中的對象, 這個時機是怎么定的?
      • 內存中常用的幾種引用?四大引用。軟引用和弱引用的區別說一下
    • 線程
      • 在Activity/Fragment頁面執行異步任務, 在任務執行前退出頁面。那么這個過程中, 線程的執行過程以及內存的情況, 描述一下。比如內存泄漏, 這個線程會不會執行。會有什么樣的問題。
      • 這種情況在業務中很容易出現, 你們在工程中是怎么規避的?比如有些任務我們是使用handler, 有些任務要我們做一些后臺的處理。這樣的情況又該怎么樣處理呢?
      • 大多數開發者都會退出頁面的時候去移除異步任務。但是每個地方都需要手寫的話, 相對來說還是比較繁瑣的。要是給你一個需求, 讓你實現一個任務框架。要求不用手動地去移除, 但是退出頁面的時候也不會去執行。你可以結合感知生命周期的組件去想想怎么實現這個東西。比如說我在用的時候我就知道什么時候該移除, 自動移除。我就只用管它怎么用就好了,我根本就不用考慮使用它會有什么問題。怎么實現?
      • kotlin協程
        • kotlin協程的原理大概說一下。它怎么做到寫起來是同步的, 實際上是異步的。它是怎么做到的?
        • 協程出現問題不好排查, 不像線程鏈路比較簡單, 協程包裝的層級比較多。針對協程問題排查, 你們有什么提效手段?
  • 你們工程中kotlin的版本升級到多少?kotlin版本升級過程中遇到過什么問題, 怎么解決的?

反問問題(10min)

當前招聘的Android崗位之后會負責什么內容?

缺的業務比較多, 并不明確, 看候選人個人偏好和團隊配置情況。目前有以下方向: 游戲化, RN相關、歌單等。

為什么沒有問Java/Android基礎、操作系統、計算機網絡相關的, 也沒有代碼考核(算法題), 為什么只問項目經歷?

1 基礎是可以背的, 并不能體現出候選人的優勢

2 其實我們面的方式也不一定能體現出一個人真實的能力, 有可能有些人就發揮不出來

3 我們這邊還有一些面試官喜歡面算法, 不同的傾向吧

4 我這邊更希望能體現出候選人擅長的地方

面試會有幾輪? 每一輪面試實際考察的內容應該不一樣吧?

至少4-5輪。

我們對社招同學, 看重經驗會多一些。有經驗就面經驗。沒有經驗就面一些基礎能力。能力是可以遷移的。即使你在一個地方深入做了很多東西, 換了一個地方, 它可能是沒什么用的。很多業務其實是沒法直接復用的。即使說是性能優化, 換了一個項目它有些東西可能就完全用不到了。但是你在做這個東西中的一些思考, 是可以遷移的。 “做這個東西怎么做, 怎么去思考做好”這個是可以遷移的。

招聘的崗位是需要一個什么職級的?

7、8、9都可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40925.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

銀行信用卡風險大數據分析與挖掘2024

銀行信用卡風險大數據分析與挖掘 使用excel數據挖掘功能完成 一、信用卡客戶信用等級影響因素分析與挖掘 基于客戶信用記錄表 1. 數據預處理 瀏覽數據 客戶等級占比,其中優質客戶占比較少,風險客戶很多,分析影響客戶信用等級的原因 年…

vue3+ts項目中.env配置環境變量與情景配置

一、環境變量配置 官網https://cn.vitejs.dev/guide/env-and-mode.html#intellisense 1. 新建.env開頭的文件在根目錄 為了防止意外地將一些環境變量泄漏到客戶端,只有以 VITE_ 為前綴的變量才會暴露給經過 vite 處理的代碼 .env 所有環境默認加載 .env.developm…

數字化精益生產系統--MRP 需求管理系統

MRP(Material Requirements Planning,物料需求計劃)需求管理系統是一種在制造業中廣泛應用的計劃工具,旨在通過分析和計劃企業生產和庫存需求,優化資源利用,提高生產效率。以下是對MRP需求管理系統的功能設…

Raylib 坐標系

draftx 符號調整為正數 發現采樣坐標系原點0&#xff0c;0 在左上角&#xff0c;正方向 右&#xff0c;下 繪制坐標系 原點0&#xff0c;0 在左下角&#xff0c;正方向 右&#xff0c;上 拖拽可得 #include <raylib.h> // 重整原因&#xff1a;解決新函數放大縮小之下…

當需要對多個表進行聯合更新操作時,怎樣確保數據的一致性?

文章目錄 一、問題分析二、解決方案三、示例代碼&#xff08;以 MySQL 為例&#xff09;四、加鎖機制示例五、測試和驗證六、總結 在數據庫管理中&#xff0c;經常會遇到需要對多個表進行聯合更新的情況。這種操作帶來了一定的復雜性&#xff0c;因為要確保在整個更新過程中數據…

為什么需要服務器?服務器可以做些什么

目錄 一、服務器和電腦的區別二、什么是SSH三、什么是免密碼登錄四、服務器如何實現SSH免密碼登錄 一、服務器和電腦的區別 服務器和電腦是兩種不同類型的計算機系統&#xff0c;它們在設計、功能和用途上存在明顯的區別。首先&#xff0c;從硬件配置上看&#xff0c;服務器通…

vb.netcad二開自學筆記3:啟動與銷毀

Imports Autodesk.AutoCAD.ApplicationServicesImports Autodesk.AutoCAD.EditorInputImports Autodesk.AutoCAD.RuntimePublic Class WellcomCADImplements IExtensionApplicationPublic Sub Initialize() Implements IExtensionApplication.InitializeMsgBox("net程序已…

JDK都出到20多了,你還不會使用JDK8的Stream流寫代碼嗎?

目錄 前言 Stream流 是什么&#xff1f; 為什么要用Steam流 常見stream流使用案例 映射 map() & 集合 collect() 單字段映射 多字段映射 映射為其他的對象 映射為 Map 去重 distinct() 過濾 filter() Stream流的其他方法 使用Stream流的弊端 前言 當你某天看…

基于深度學習LightWeight的人體姿態檢測跌倒系統源碼

一. LightWeight概述 light weight openpose是openpose的簡化版本&#xff0c;使用了openpose的大體流程。 Light weight openpose和openpose的區別是&#xff1a; a 前者使用的是Mobilenet V1&#xff08;到conv5_5&#xff09;&#xff0c;后者使用的是Vgg19&#xff08;前10…

公務員考試、事業編考試、教師資格證、面試、K12資料、電子書

點擊上方△騰陽 關注 作者 l 騰陽 轉載請聯系授權 你好&#xff0c;我是騰陽。 在這個自媒體的海洋里&#xff0c;我曾是一只迷失方向的小鳥&#xff0c;多次嘗試飛翔卻總是跌跌撞撞。 但每一次跌倒&#xff0c;都讓我更堅定地相信&#xff0c;只要不放棄&#xff0c;總…

【Unity2D 2022:Particle System】添加命中粒子特效

一、創建粒子特效游戲物體 二、修改粒子系統屬性 1. 基礎屬性 &#xff08;1&#xff09;修改發射粒子持續時間&#xff08;Duration&#xff09;為1s &#xff08;2&#xff09;取消勾選循環&#xff08;Looping&#xff09; &#xff08;2&#xff09;修改粒子存在時間&…

2024全網最全面及最新且最為詳細的網絡安全技巧五 之 SSRF 漏洞EXP技巧,典例分析以及 如何修復 (上冊)———— 作者:LJS

五——SSRF漏洞 EXP技巧&#xff0c;典例分析以及 如何修復 目錄 五——SSRF EXP技巧&#xff0c;典例分析以及 如何修復 5.1Apache mod_proxy SSRF&#xff08;CVE-2021-40438&#xff09;的一點分析和延伸 0x01 Apache Module綜述 0x02 漏洞原理分析 Apache在配置反代的后端…

Vue的學習之生命周期

一、生命周期 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Vue的學習</title><script src"vue.js" type"text/javascript" charset"utf-8"></script></head>&l…

C#如何從中級進階到高級開發

從中級C#開發進階到高級開發&#xff0c;需要深入理解和掌握更復雜的技術和架構&#xff0c;同時培養解決問題的能力和創新思維。以下是一些關鍵的技能和步驟&#xff0c;可以幫助你從中級向高級開發邁進&#xff1a; 1. 深入理解C#語言特性 泛型&#xff1a;熟練使用泛型提高…

Java實現登錄驗證 -- JWT令牌實現

目錄 1.實現登錄驗證的引出原因 2.JWT令牌2.1 使用JWT令牌時2.2 令牌的組成 3. JWT令牌&#xff08;token&#xff09;生成和校驗3.1 引入JWT令牌的依賴3.2 使用Jar包中提供的API來實現JWT令牌的生成和校驗3.3 使用JWT令牌驗證登錄3.4 令牌的優缺點 1.實現登錄驗證的引出 傳統…

強化Linux系統安全性:從基礎命令到高級管理

強化Linux系統安全性&#xff1a;從基礎命令到高級管理 引言 在網絡安全領域&#xff0c;Linux系統因其穩定性和安全性而廣受歡迎。作為一名網絡安全專家&#xff0c;我將分享如何通過Linux基礎命令和高級管理技巧來加強系統的安全性。本文將基于《學神 IT 教育》提供的Linux…

Debezium報錯處理系列之第110篇: ERROR Error during binlog processing.Access denied

Debezium報錯處理系列之第110篇:ERROR Error during binlog processing. Last offset stored = null, binlog reader near position = /4 Access denied; you need at least one of the REPLICATION SLAVE privilege for this operation 一、完整報錯二、錯誤原因三、解決方法…

python 切入點(EntryPoints)使用

文章目錄 EntryPoints 介紹EntryPoints案例EntryPoints 介紹 官網參考 EntryPoints 是發布的python 項目的一種機制,可以提供對自身項目的切入點,供其他項目代碼使用。在python環境中可以通過importlib.metadata.entry_points 函數發現所有的切入點插件,并在代碼中加載、調…

08_排序

基本概念與分類 假設含有n個記錄的序列為 { r 1 , r 2 , . . . , r n } \{r_1,r_2,...,r_n\} {r1?,r2?,...,rn?}&#xff0c;其相應的關鍵字分別為 { k 1 , k 2 , . . . , k n } \{k_1,k_2,...,k_n\} {k1?,k2?,...,kn?}&#xff0c;需確定1&#xff0c;2&#xff0c;…&…

微服務: Nacos部署安裝與properties配置

Nacos 是阿里巴巴開源的一款用于動態服務發現、配置管理和服務管理的基礎設施。Nacos 這個名稱源自于 “Dynamic Naming and Configuration Service”。它主要是用于解決微服務架構中服務發現和配置管理的問題。 Nacos 單機模式的部署安裝 1. 安裝(Windows環境) Nacos是Java…