当前位置: 首页 > news >正文

微信Android一面凉经(2024)

微信Android一面凉经(2024)

wechat

笔者作为一名双非二本毕业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&#xff09;打开此电脑&#xff0c;输入 “控制面板”&#xff0c;然后回车. b&#xff09;之…...

版本管理|为什么不推荐使用Git Rebase

文章目录 什么是 Git Rebase&#xff1f;如何使用 Git Rebase&#xff1f;基本语法示例更多选项 注意事项何时使用何时避免其他注意事项 为什么需要谨慎使用 Git Rebase&#xff1f;面试中的常见问题问题 1: Git Rebase 和 Git Merge 有何不同&#xff1f;问题 2: 为什么有时应…...

Https post 请求时绕过证书验证方案

解决异常&#xff1a;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&#xff1f;2. 安装Day.js 二、Day.js的基本用法1. 创建日期对象2. 格式化日期3. 解析日期字符串4. 操作日期5. 比较日期 三、Day.js的高级功能1. 插件机制2. 国际化支持 四、实际应用案例1. 事件倒计时2. 日历应用 在JavaScript开发中…...

AI算法与图像处理 | 吴恩达团队新作!多模态方向

本文来源公众号“AI算法与图像处理”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;吴恩达团队新作&#xff01;多模态方向 研究评估了先进多模态基础模型在 10 个数据集上的多样本上下文学习&#xff0c;揭示了持续的性能提升。…...

云服务器Ubuntu18.04进行Nginx配置

云服务器镜像版本信息&#xff1a;Ubuntu 18.04 server 64bit&#xff0c;本文记录了在改版本镜像上安装Nginx&#xff0c;并介绍了Nginx配置文件目录&#xff0c;便于后面再次有需求时进行复习。 文章目录 Nginx的安装Nginx配置文件分析 Nginx的安装 1.执行下面命令进行安装…...

SQL labs-SQL注入(四,sqlmap对于post传参方式的注入)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 序言&#xff1a;本文主要讲解基于SQL labs靶场&#xff0c;sqlmap工具进行的post传参方式的SQL注入。 传参方式有两类&#xff0c;一类是直接在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的版本&#xff0c;点击【Download】 3.自定义安装路径&#xff0c;记得勾选Add Python xxx to PATH 这步是自动配置环境变量的&#xff0c;如果忘记勾选&#xff0c;建议…...

URL重写

目录 步骤1 规则语法 Nginx URL重写规则语法 Apache URL重写规则语法 步骤2 规则配置 Apache URL重写规则配置 启用mod_rewrite模块 配置.htaccess文件 编写重写规则 测试重写规则 Nginx URL重写规则配置 配置server或location块 测试重写规则 步骤1 规则语法 Ngin…...

git配置环境变量

一.找到git安装目录 打开此git安装目录下的bin文件&#xff0c;复制此文件路径 二.配置环境变量 2.1 右键点击此电脑的属性栏 2.2 点击高级系统配置 2.3 点击环境变量 2.4 按图中步骤进行配置 三.配置完成 win r 输入cmd打开终端 终端页面中输入 git --version 如图所示…...

vue3编程-import.meta.glob实现动态路由(菜单)

import.meta.glob 是vite提供的批量懒加载组件的方法 本地开发环境&#xff1a; const modules import.meta.glob(../views/**/*.vue)这段代码返回的modules是一个Map&#xff1a; key是vue文件的相对路径&#xff0c;值是一个函数&#xff0c;将函数打印出来&#xff0c;如…...

富唯智能转运机器人:高效、智能、未来的选择

在现代工业中&#xff0c;高效的物流和物料处理是提升生产效率的关键。富唯智能转运机器人&#xff0c;以其卓越的技术和智能化的设计&#xff0c;为各行业提供了完美的解决方案。 产品概述 富唯智能转运机器人搭载ICD系列核心控制器&#xff0c;拥有多种移载平台&#xff0c…...

跨境电商独立站:Shopify/Wordpress/店匠选哪个?

在面对不断增加的平台运营压力时&#xff0c;不少跨境电商的商家逐渐将注意力转向建立自己的独立站。据《中国跨境出口电商发展报告&#xff08;2022&#xff09;》所示&#xff0c;中国拥有的独立站数量在2022年已接近20万个&#xff0c;这表明独立站已成为卖家拓展海外市场的…...

减轻幻觉新SOTA,7B模型自迭代训练效果超越GPT-4,上海AI lab发布

LLMs在回答各种复杂问题时&#xff0c;有时会“胡言乱语”&#xff0c;产生所谓的幻觉。解决这一问题的初始步骤就是创建高质量幻觉数据集训练模型以帮助检测、缓解幻觉。 但现有的幻觉标注数据集&#xff0c;因为领域窄、数量少&#xff0c;加上制作成本高、标注人员水平不一…...

53.最大子数组和,动态规划+贪心解法!!!

力扣53最大子数组和 题目动态规划贪心 题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums…...

python+vue3+onlyoffice在线文档系统实战20240723笔记,项目界面设计和初步开发

经过之前的学习,已经能够正常打开文档了。 目前为止,我们的代码能够实现: 打开文档编辑文档手动保存自动保存虽然功能依然比较少,但是我们已经基本实现了文档管理最核心的功能,而且我们有个非常大的优势,就是支持多人同时在线协同编辑。 现在我们要开发项目,我们得做基…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...