微信Android一面凉经(2024)
微信Android一面凉经(2024)

笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《微信Android一面凉经(2024)》。
面试职位: 微信-客户端开发工程师-基础功能(广州)
Android/iOS终端小程序、小游戏以及公众号、微信搜索、以及其他的创新业务的开发。
技术一面
- 面试形式:视频面试
 - 面试时长: 110min(提问80min + 代码15min + 反问15min)
 - 代码考核: 20.有效的括号
 - 岗位地点: 广州
 
面试问题(80min)
- 自我介绍, 是否在职
 - 哪些项目比较有亮点能体现你的个人能力的
 - RN页面打开速度优化 
- 改成RN的目的?
 - 最终能媲美原生?
 - 除了预载还做了什么, 能达到媲美原生?
 - 如果不做视图预热, 这个页面打开过程中, 有哪些路径、节点是性能瓶颈?
 - xx业务的自定义View逻辑比较复杂是吧?为什么不让这个View异步地去渲染, 拿到数据再加载出来?
 - 视图预热包括几个阶段?总共做了几个事情?
 - 视图预热场景深入的技术研究, 改造相关的技术难点?
 - 怎么去做?
 - 每个业务去做预热都需要知道你们的这个xx机制。有没有想过能力下沉, 在框架层做掉?让业务更少程度去感知这个事情
 - 这个方案, 多了xx内存。第二个业务增大也会有xxM吗?
 - 有没有想过在保持预热后快速打开页面的效果的同时再把内存降下来?
 - 升级中有没有遇到什么困难?
 - 你上面说的是事实, 针对这些问题, 你们做了什么?
 - 页面内优化?
 - 有没有不能batch的请求?
 - 我这边体验下来, 你们app的这个页面在小米14Ultra上滑动卡顿, 触顶反弹会卡.这块有优化吗?
 - RN基建有没有做相关的监控?
 - RN没有首帧渲染的回调吗?
 - 除了首帧还有其他吗?
 - 内存占用怎么做的?什么时机拿内存数据?通过什么上报?
 
 - 播放优化 
- 做策略的依据?
 - 经验值or有依据?
 - 策略动态下发?
 - 拉线上数据, 根据数据支持做方案?
 - 音质提升方案从远端迁移到本地会不会导致音质降低?
 - 迁移过程中涉及什么难的、深的技术?
 
 
代码考核(15min)
20.有效的括号
 进阶: 以代码上线的标准要求自己, 将代码写好。包括但不限于: 命名规范、合理的约束、代码可读性、可维护性、拓展性等。
public class Main {private static final List<Character> LEFT = List.of('(', '[', '{');private static final List<Character> RIGHT = List.of(')', ']', '}');public static boolean isValid(String str) {final Stack<Character> stack = new Stack<>();for (int i = 0; i < str.length(); i++) {final char ch = str.charAt(i);if (LEFT.indexOf(ch) != -1) {stack.push(ch);} else {if (stack.isEmpty() || ch != RIGHT.get(LEFT.indexOf(stack.pop()))) {return false;}}}return stack.isEmpty();}public static void main(String[] args) {System.out.println(isValid("()")); // trueSystem.out.println(isValid("{[()]}")); // trueSystem.out.println(isValid("(")); // falseSystem.out.println(isValid("{(]}")); // false}
}
 
反问问题(15min)
岗位负责内容
业务: 小程序、小游戏、公众号、搜索。
 技术:
- WebView(渲染小程序前端视图)、
 - 小游戏(游戏引擎(unity、自研引擎)、移植游戏(比如: 仙剑)引擎性能调优)、广告(朋友圈、订阅号/服务号/公众号)。
 - matchbrush渲染框架(广告动态化))
 - 公众号(timeline、flutter、c++逻辑和UI跨平台)
不确定具体做哪一块, 根据招人情况和候选人意愿。
跨平台是这几年在主推的一些方案: - H5
 - flutter
 - 游戏引擎
 - c/c++
 - 小程序
 
招聘岗位候选人的要求, 技能专精或其他方面的考量?
对项目的技术要点是否有深刻的理解。除了做了,是不是会理解里面的逻辑。比如播放器可以理解得更加深入。
 不局限自己做的事情, 需要了解产品层面, 或者技术更底层的, 或者合作方的东西。
 这样可以更好cover整个项目, 可以考虑得更加周到。
 对不同工龄的同学的要求不同。刚毕业、毕业1-2年、毕业3、4、5、6年。
 技术深度+技术广度+工程能力
 工程能力:
- 性能,
 - 全程cover思考
 - 做方案前周全考虑
 - 落地怎么把代码写好
 - 发布后怎么追踪数据
 - 业务优化闭环
 
面试顺利的话, 多久会通知下一轮?
2-4天。
 面试量比较大。很多简历, 面试压力也很大。偶尔可能会稍晚一点, 看下一位面试官安排。
是不是HC比较充足?
充足不代表会降低标准。整个团队都比较充足。
 微信本来就是一个精兵模式, 不会招很多人。
 目前微信只有5、6千人, 但是CDG(企业发展事业群)、其他事业群可能会有2-3w人
 我们现在有需求, 所以会招多一点人。
 能过我们这边OK, 不能过也可以更好地准备其他部门的面试。机会都很多。
 今天表现还不错, 要有信心。
总结
- 据说WXG是腾讯所有BG里最难进的, 也可以考虑先进腾讯其他部门, 再内部转岗到WXG。据说这样会比直接社招轻松些 -> 《我是如何拿到微信 offer 的?》
 - 面试问得非常细节, 面试官真的有在好好听你描述项目, 细致地询问你在项目每个阶段的思考和行动。
 - 可以看到全程都在问项目经历, 但整体面试下来, 面试官并不是在考察你做的过往工作是否有价值, 还是在考察你的做事风格, 行为规范, 是否符合逻辑。
 - 直接把面试官说的要求贴这里吧, 希望对想要加入微信的朋友们有所帮助: 
- 技术深度+技术广度+工程能力
 - 性能
 - 全程cover思考
 - 做方案前周全考虑
 - 落地怎么把代码写好
 - 发布后怎么追踪数据
 - 业务优化闭环
 
 
相关文章:
微信Android一面凉经(2024)
微信Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《微信Android一面凉经(2024)》。 面试职位: 微信-客户端开发工程师-基础功能(广州) And…...
VMware、Docker - 让虚拟机走主机代理,解决镜像封禁问题
文章目录 虚拟机全局代理配置找到 VMnet8 的 IPv4 地址代理相关配置虚拟机代理配置 Docker 代理配置修改镜像修改 Docker 代理配置 虚拟机全局代理配置 找到 VMnet8 的 IPv4 地址 a)打开此电脑,输入 “控制面板”,然后回车. b)之…...
版本管理|为什么不推荐使用Git Rebase
文章目录 什么是 Git Rebase?如何使用 Git Rebase?基本语法示例更多选项 注意事项何时使用何时避免其他注意事项 为什么需要谨慎使用 Git Rebase?面试中的常见问题问题 1: Git Rebase 和 Git Merge 有何不同?问题 2: 为什么有时应…...
Https post 请求时绕过证书验证方案
解决异常:Caused by: java.security.cert.CertificateException: No subject alternative names matching IP address xxx.xx.xx.xx found // Https POST 请求private cn.hutool.json.JSON PostGsData(String url, String appKey, String token, Map<String, Ob…...
C# 数组常用遍历方式
// 假设数组Point[] points new Point[2];// 第一种遍历 forfor (int i 0; i < points.Length; i){Point p points[i];Console.WriteLine($"X{p.X},y{p.Y}");}// 第二种遍历 foreachforeach (Point p in points){Console.WriteLine($"X{p.X},y{p.Y}"…...
【JavaScript】详解Day.js:轻量级日期处理库的全面指南
文章目录 一、Day.js简介1. 什么是Day.js?2. 安装Day.js 二、Day.js的基本用法1. 创建日期对象2. 格式化日期3. 解析日期字符串4. 操作日期5. 比较日期 三、Day.js的高级功能1. 插件机制2. 国际化支持 四、实际应用案例1. 事件倒计时2. 日历应用 在JavaScript开发中…...
AI算法与图像处理 | 吴恩达团队新作!多模态方向
本文来源公众号“AI算法与图像处理”,仅用于学术分享,侵权删,干货满满。 原文链接:吴恩达团队新作!多模态方向 研究评估了先进多模态基础模型在 10 个数据集上的多样本上下文学习,揭示了持续的性能提升。…...
云服务器Ubuntu18.04进行Nginx配置
云服务器镜像版本信息:Ubuntu 18.04 server 64bit,本文记录了在改版本镜像上安装Nginx,并介绍了Nginx配置文件目录,便于后面再次有需求时进行复习。 文章目录 Nginx的安装Nginx配置文件分析 Nginx的安装 1.执行下面命令进行安装…...
SQL labs-SQL注入(四,sqlmap对于post传参方式的注入)
本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 序言:本文主要讲解基于SQL labs靶场,sqlmap工具进行的post传参方式的SQL注入。 传参方式有两类,一类是直接在url栏内进行url编码后进行的传参&am…...
R包:plot1cell单细胞可视化包
介绍 plot1cell是用于单细胞数据seurat数据对象的可视化包。 安装 ## You might need to install the dependencies below if they are not available in your R library. bioc.packages <- c("biomaRt","GenomeInfoDb","EnsDb.Hsapiens.v86&qu…...
Tent混沌人工蜂群与粒子群混合算法遇到问题,具体问题及解决方案如文。
🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述 Tent混沌人工蜂…...
Python文献调研(一)环境搭建
一、安装Python版本 1.点击进入Python官网 Download Python | Python.org 2.根据自己的需求选择python的版本,点击【Download】 3.自定义安装路径,记得勾选Add Python xxx to PATH 这步是自动配置环境变量的,如果忘记勾选,建议…...
URL重写
目录 步骤1 规则语法 Nginx URL重写规则语法 Apache URL重写规则语法 步骤2 规则配置 Apache URL重写规则配置 启用mod_rewrite模块 配置.htaccess文件 编写重写规则 测试重写规则 Nginx URL重写规则配置 配置server或location块 测试重写规则 步骤1 规则语法 Ngin…...
git配置环境变量
一.找到git安装目录 打开此git安装目录下的bin文件,复制此文件路径 二.配置环境变量 2.1 右键点击此电脑的属性栏 2.2 点击高级系统配置 2.3 点击环境变量 2.4 按图中步骤进行配置 三.配置完成 win r 输入cmd打开终端 终端页面中输入 git --version 如图所示…...
vue3编程-import.meta.glob实现动态路由(菜单)
import.meta.glob 是vite提供的批量懒加载组件的方法 本地开发环境: const modules import.meta.glob(../views/**/*.vue)这段代码返回的modules是一个Map: key是vue文件的相对路径,值是一个函数,将函数打印出来,如…...
富唯智能转运机器人:高效、智能、未来的选择
在现代工业中,高效的物流和物料处理是提升生产效率的关键。富唯智能转运机器人,以其卓越的技术和智能化的设计,为各行业提供了完美的解决方案。 产品概述 富唯智能转运机器人搭载ICD系列核心控制器,拥有多种移载平台,…...
跨境电商独立站:Shopify/Wordpress/店匠选哪个?
在面对不断增加的平台运营压力时,不少跨境电商的商家逐渐将注意力转向建立自己的独立站。据《中国跨境出口电商发展报告(2022)》所示,中国拥有的独立站数量在2022年已接近20万个,这表明独立站已成为卖家拓展海外市场的…...
减轻幻觉新SOTA,7B模型自迭代训练效果超越GPT-4,上海AI lab发布
LLMs在回答各种复杂问题时,有时会“胡言乱语”,产生所谓的幻觉。解决这一问题的初始步骤就是创建高质量幻觉数据集训练模型以帮助检测、缓解幻觉。 但现有的幻觉标注数据集,因为领域窄、数量少,加上制作成本高、标注人员水平不一…...
53.最大子数组和,动态规划+贪心解法!!!
力扣53最大子数组和 题目动态规划贪心 题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums…...
python+vue3+onlyoffice在线文档系统实战20240723笔记,项目界面设计和初步开发
经过之前的学习,已经能够正常打开文档了。 目前为止,我们的代码能够实现: 打开文档编辑文档手动保存自动保存虽然功能依然比较少,但是我们已经基本实现了文档管理最核心的功能,而且我们有个非常大的优势,就是支持多人同时在线协同编辑。 现在我们要开发项目,我们得做基…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
Linux入门(十五)安装java安装tomcat安装dotnet安装mysql
安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了,系统很多命…...
[KCTF]CORE CrackMe v2.0
这个Reverse比较古老,已经有20多年了,但难度确实不小。 先查壳 upx压缩壳,0.72,废弃版本,工具无法解压。 反正不用IDA进行调试,直接x32dbg中,dump内存,保存后拖入IDA。 这里说一下…...
【RabbitMQ】- Channel和Delivery Tag机制
在 RabbitMQ 的消费者代码中,Channel 和 tag 参数的存在是为了实现消息确认机制(Acknowledgment)和精细化的消息控制。 Channel 参数 作用 Channel 是 AMQP 协议的核心操作接口,通过它可以直接与 RabbitMQ 交互: 手…...
